Adding smoke to an image is really quite easy. It adds interest to images with guns. Consider this image of Crystal Gomez:
The first step is to build a library of smoke images, lit from the side by a single flash, using a black background. The smoke is provided by a stick of incense. Here is the smoke image that was used above:
Simply drag the smoke image on top of the base image so it is the top layer. To eliminate the black background, change the layer blending mode of the smoke layer to Screen. Next do a free transform (Command-T) to size, rotate and position the smoke where you want it. Then erase or mask the unwanted smoke. If the smoke is not bright enough, duplicate (Command-J) the smoke layer once or twice. When I do this, I always merge the smoke layers back down to a single layer by using Command-E.