The "flash" is the easy part. Realistic smoke is much trickier.
Detonation Films' gunfire also has smoke. They also sell Debris DVDs. You add them in, just like you do the flash effect. I know Steve already knows, but to the original poster, here is a scene that was shot with plastic guns. All flash, smoke, debris and most blood splats were done in post.
The shooting starts at the :55 second mark.
SHOOT OUT
Sony Vegas will allow you to add gun effects, without any other software, per the link, above. My first gun effects were done in Photoshop. In Premiere, I selected a few frames from my timeline and EXPORTED them as a TIFF SEQUENCE. I then found a frame grab of fire and CLONED it onto the guns. When the guns went off, I also made a circular part of the whole frame brighter, using the BURN tool.
I used the Photoshop technique at the 4:40 time segment of this video:
THREE STRIPE
I did the same thing at the 6:30 time segment, above, and that one looks really cool!
If you freeze frame it, my flash is a bunch of bright squiggly lines, because I sqribbled them in with the clone tool. Notice how the entire frame brightens up during the flash. I've had people watch this and think it was a very good effect, even though no compositing program was used; just Photoshop.
If you can afford to buy the elements and programs for compositing, you have a lot of options. FXhome.com distributes Composite Lab Pro for very cheap. A step up from that is Vision Lab Studio, which I used in the first shootout clip, along with After Effects. The great thing about Vision Lab Studio is that you have access to pre-animated gun flashes that you can totally adjust - size, angle, rate of fire, etc. Because the animated effects are "generated" by the program, you can do a lot of things that you can't do with a few select angles of real gun blasts.
Like Zensteve said, you want smoke. Vision Lab can do that, but I like mixing real blast smoke, because it looks so natural. The best all in one elements (fire, smoke, blood, etc.) package is probably ACTION ESSENTIALS 2, from
http://www.videocopilot.net/ It should be on the main page. Watch the demo and you should be duly impressed.
As noted above, but here is the HD footage link -
http://www.detfilmshd.com/
Also,
http://www.nccinema.ch/
If you need blank firing guns, but not real weapons, I have several realistic, blank firing stage pistols from these guys:
http://www.collectorsarmory.com/index.php?p=catalog&parent=1&pg=1
The blank firing guns are very loud, but they eject shells, smoke, flash and can com in handy during a tricky lighting situation, like having a realistic gunfight in the dark. One of the best gunshot effects I ever did was with one of these guns.
To see it, go to the 1:10 time segment of this video:
ROADKILL
You can see more of the blank firing at the 2:25 mark.
To sum up: You can use Photoshop, a compositing program, blank firing stage guns, or in the case of shotguns, etc. - real blanks. In the latter case, you should hire a professional armorer. The great thing about post effects is you can have a huge shootout and have it be totally silent and safe.