I think it depends on the issue. If it's something generic--talking too loud for example--I always start out by saying, "You probably don't realize this, but your voice really carries. I'm sure you don't want to disturb people, so I just thought I'd let you know that sometimes we can all hear everything you say. *chuckle*" Any time I can provide a ready-made excuse for the person I'm approaching, it seems to smooth the way considerably.
For really personal stuff, like poor hygiene, you can talk to the person directly (if you have the guts) or leave a note. Either should be very kind and direct. No jokes, no sarcasm. Pick a choose from these suggestions: "Bob, this really difficult for me to bring up, but hey I'm your bud, right? We watch each other's backs, right? Well, I just wanted to let you know that more often than not, you've got some pretty powerful B.O. Enough that most folks can really smell it when they're around you. It really puts people off, and I know you don't want that. I just wanted to help out and let you know."
While humor can often smooth the way, I find that it doesn't work well among co-workers. A supervisor can use it effectively with an employee, but between peers, it's too easy for the offender to just blow off what you're trying to say. If you are kind but direct--they can't miss the point.
Keep Up with TechRepublic