To clean the grime off of the walls we used a product called TSP in a powder form that is mixed with water. Black streaks rolled down the wall after the first passage. The second round yielded light yellow streaks. And finally, the third time we wiped down the walls, nearly all of the grime had been removed. We had also added a few tablespoons of Atmosclear (an odor remover) to each bucket of water.
The next stage was to use one of two priming products: the first we tried was called Zinsser and the second was Kilz 2. I found that Kilz 2 worked just as well at sealing stains and odors as the Zinsser, and it was only half the cost.
Together, these products worked amazingly well to remove odors of smoke, nicotine, and in the case of the flooring, dog urine.
Finally, we painted.