When I got my car it had a slight cigarette smell to it (my mom noticed it when I brought it home....but I didn't...oh well) - well, I got one of those 12v "air ionizers" from walmart, it was like $9.88 or something and plugged that in. About a month or two later, I had to take her to the store, and she was like damn that smell is gone, what did you do..? Errr....nothing really...I haven't did any "deep cleaning" to the interior at all, I sprayed some febreeze automotive stuff like twice, and let the car sit with the windows cracked less than 1inch whenever possible (i.e.: I'm not in some dodgy neighborhood or parking lot lol).
I also primarily ride with my windows down (back driver, and front passenger cracked about 2inches).
So that's my story
But I've read all kinds of weird stuff.
Rags soaked in vinegar (I'd imagine on a plate of some sort, so it doesn't leave a stain on the fabric)
Sprinkle the complete interior with baking soda (except maybe the driver seat, lol) and then get it vacuumed out the next day with a good quality vacuum at a car wash.
Pan of baking soda under the seat (that could get messy, depending on how you drive...put I suppose Velcro would work here too, Velcro the bottom of the pan, to the bottom of the seat, or duct tape? lol) and change it every couple days.
Ozium? They sell it in small aerosol cans, but reading up on the stuff, it sounds kinda dangerous..lol.
Then I read something about spraying Lysol into the air intake vents under the hood....by switching from "Fresh air", to Recirculated, to AC, to Heat, etc, the Lysol will break down any odors that are "living" in your vents.
If gone this route though, I don't know which would be preferred, to do the process _before_ or _after_ - changing the cabin/air filter(s)?
I know when my mum got her SUV it had a faint smell in it of cigs, and the dealer said some detailers have machine that can get rid of the smell using some kind of fogging machines, ionizers, and other stuff to break apart the ions that are causing the smell.