onegaishimasu is more formal and is used most often when talking to people of a higher position or some kind of official. Or if you just want to be uber-polite it is okay too.
kudasai is for folks at the same level or lower. On occassion you might use it with your boss if in a relaxed setting or he/she doesn't care. If you have business guests though you would use onegaishimasu.