Get the carpets professionally cleaned.
If there are drapes, have them cleaned or replaced.
Professionally clean or replace any other fabric in the room.
Have the walls washed. You might have to repaint--use Kilz as the primer.
Jeff mentions an ozonator. They're good; I've used them. But they're not perfect. It's likely that if you try it without taking the other steps mentioned above, you'll be disappointed. The smell can return. (Without getting technical, the ozone will neutralize a lot of odors. But it has to reach them. If the odors are embedded in carpets, for instance, the ozone (which has a very short "life") may not be able to reach it. And if the odor is in the padding (cat and dog urine are good examples of how that can happen, though smoke could, too), there's no way that the ozone can reach it.
And Caroline is 100% correct: Fix the problem. Don't try to cover it up with candles, room deodorizers, etc.
Hope that helps.