First, we start off with a black background, and add a new layer. On this layer we will use the paintbrush to create a random starting point for our smoke. For example:
Next, we will choose Filter > Distort > Wave, and click the Randomize button, then we will goto Edit > Fade Wave and choose 50% Opacity. These two steps will have to be repeated a few times to achieve the right results.
It helps if you stick to a general shape for your Waves, so if you see one that is too drastic in the preview, click Randomize again. You can also throw in a few Distort > Twirl filters, to get a swirling type of smoke effect, which you can also fade.
Above is the outcome of this tutorial. There are many many variations of smoke you can achieve with this method of repetition. Once again, experimentation is the key and every situation is different in PhotoShop.

