If this is just an occasional smoke, most of the smell left over is from smoke trapped in fabrics, such as carpets, curtains, etc. Sprinkling/rubbing baking soda into them can help neutralize the odor.
For carpets (which will eliminate basically all the smell in most rooms), just sprinkle it over the carpet lightly. I typically then walk over it a bit to distribute it further into the pile. Wait a while (10 minutes to a few hours), and then vacuum the carpets as usual.
For a more noticeable immediate effect, you can get products made specifically for this. Where I'm at they're very inexpensive, as they're mostly baking soda with an additional scent added in.
As I said, this is best for an occasional smoke. For rooms that are smoked in constantly over time, there will be a smoke/soot buildup on most surfaces, which requires a deeper cleaning.