We have had apartments with smokers, and we washed all the walls with ammonia water. Fantastik also works wonders on the walls, furniture, etc. and to get rid of the greasy build-up from smoke.
Having your carpets done professionally helps too.
Vinegar in the rinse water of the washer helps to get the smell out of clothes too.
Hope this helps! :)