Actually for the smoke there is a rather traditional method that can be used... For those (D)SLR users, if you set your f-stop too high it have a high chance of underexpose the picture.
Those of you guys that have polarizer (circular/linear) filter, I believe you remember that this filter cuts down glare on glass and water. I experimented it with smoke and it is about 60-70% effective...
Then I further post-process it by using levels. Levels is actually much easier than curves. You just need to shift the shadow tab down, and you can actually see the smoke disappear...
For the benefit of the doubts, I have prepared a small guide for you...
When you open your levels window, take note of 3 triangle tabs, Black for Shadows, Grey for Midtones and White for Highlights.