Unfortunately, I've had to deal with alot of problem players lately. Too many, really. I recently spearheaded an effort to start a collaborative 4E game at my FLGS to get all the people who talk about wanting to play 4E to actually talk to each other and start playing it. My last 3.5 game was horrible, an absolutely terrible experience because of one particular player. Of course, I have plenty of horror stories if you're really interested, but as it's not precisely germane I'll just share my observations for now.
Here's how I deal with problem players:
1) Identify the problem. Chances are, most of the problems that players have are simple failures to communicate. When you get both sides of the story, you often find out that a player is just being themselves and didn't realize that they weren't cool. For most adults, pointing the problem out is often enough to get it to stop. Old habits might pop up from time to time, but people communicating with each other is often enough to get it to stop.
2) If a player is unwilling or unable to deal with an issue, start calling them out on it--publicly. The next time your snack-moocher grabs the last can of pop or your loathsome quoter goes through his Monty Python and the Holy Grail routine for the umpteen-billionth time, immediately stop what you are doing and affix him with an icy stare (if you have any respect from your group as a DM, the rest of the group will follow suit). Give them a reasonably polite but cool reminder about the behavior. "Didn't we discuss bringing your own snacks?" "We've all seen that movie. Can we move on?" Although public censure might seem extreme, it's crucial: you need to reinforce the idea that the group has a problem with the behavior, not just you. Once the offender realizes that they are being a goober, they will typically stop the behavior immediately. Chances are, they'll never forget getting called out on it a few times and you'll never have to deal with the problem again.
I'm generally a pretty tolerant guy, and using the method of communicating and reinforcing behavior is enough to keep marginally offensive players in line. However, this method assumes that you find something about that player that makes you want to keep them around.
There are some people who are just freaks, who are beyond hope of reconciliation or reason. Maybe they are just completely inept with anything social and just don't understand how human beings relate to one another, maybe they can't seperate themselves from their cellphone during the game, maybe they are one of those creepy guys who never bathes and stares at the female players a little too intensely. Unless you just so happen to be a therapist, it's not your job to counsel such people or even accomodate them. Developing the ability to spot the way-out-there horrible people and isolating them from your game is the only method of dealing with them. If you do happen to get one of these goobers in your game, the best solution is to just cut them off as fast as possible. You're free to use whatever method you please, but I personally don't lie to people about their issues. I flat-out tell people (as politely and sensitively as I can) why they are being told to leave the group. Not asked to leave, told to leave. I'm a direct kind of guy, so I don't have any problem whatsoever telling a player that he needs to go take a shower or stop leering at the girls or whatever. Right now, you might be thinking, "Wow, that's insensitive and I could hurt someone's feelings." But people don't change behavior that isn't reinforced. So if you get rid of a player without telling them the problem directly, the problem was with the group not them, and they merrily saunter off to bless another group with their presence. You're actually helping them by being honest, and if they can't take advice from a friend, that's someone you want to keep at arm's length anyway.