My Jeep was literally an ashtray when I got it. Butts everywhere, ash everywhere, in the seats, in the vents, behind the dash board, in the cargo area....it really helped my haggling, though.
First I took off any dash parts that were relatively easy to remove. Then I took a soft bottle brush and an air compressor and blew out any dust I could, loosening up what I could reach with the brush. Then I washed all of those dash parts.
I sprayed and scrubbed anything cloth or carpet with Blue Coral, let it dry, vacuumed it, dumped a bunch of that baking soda carpet fresh stuff everywhere, let it sit over night, vacuumed it again, cleaned the windows, cleaned all the trim with simple green with a brush (diluted), followed that up with a treatment of 303 Aerospace protectant, use it on those dash parts too before you put them back in.
Then I turned it on, put the vents on full blast, and sprayed like half a can of Ozium in the Jeep and let it run for maybe 15 minutes, changing the vent settings every few minutes.
Then a couple more normal uses of the Ozium and well, now it really doesn't smell like anything at all.