All of these are good approaches. What works best for me is to use some sort of circle image (a single frame is all you need) that increases in size and fades out. I've attached an image of the explosion I use in PolyPong (you can see it working via my signature).
I usually do something like this every game loop (please excuse the pseudo code):
ExplosionImageWidth = ExplosionImageWidth + (ExplosionMAXWidth - ExplosionImageWidth)/10
ExplosionAlpha = ExplosionAlpha / 1.1
If (ExplosionAlpha <= 1) destroy the explosion
Combine this with animations and/or particles if you'd like, but it does work well on its own. It generally is a lot less work than trying to draw a bunch of explosion animation frames.