Technofreak: Going through HR might be seen as less confrontational but is the wrong way to do this in my opinion.
There's no need for confrontation when dealing directly with the person involved. You just need to explain the problem and try to work together to find a solution that works for both of you. Don't be judgemental about their smoking habit.
Going to HR is the cowards option. It potentially creates more issues as the person involved knows a work colleague has complained, they don't know which one, this places everyone under suspicion potentially undermines harmony in the work place.
I wouldn't trust HR to resolve the issue, in my experience most HR people don't know how to do their job.
Agree with this approach 100%. HR should only be involved if you can't resolve the issue face-to-face and it actually is an issue. In my experience HR is not on your side and could only introduce more issues down the track.
FWIW, as an ex-smoker, I find BO, cooking/food smells, perfume and bad breath equally as offensive in the workplace as the smell of cigarettes. Please don't be judgmental just because they are a smoker.