Rent an ozone generator.
I've used them a few times in the past, always happy with results.
If it's a smoking room you're no longer using and want it really gone, the drywall, trim, insulation, flooring etc all have to come out. Run ozone generator for a day or two, seal the wood with kilz, and put up new finish work. Same for house fires.
They also work for smoked in cars. Deep clean with a carpet/upholstery extractor, ozone generator for a day, and the smell will be 90% gone. I'll usually strip the seats and carpet to clean, then reassemble for ozone.