I'm using the slice-based scattering technique from the volume rendering chapter in GPU Gems 1 by Joe Kniss et. al. This is one of my favourite tricks, and is the same technique I used in the old smoke particles sample in the CUDA SDK. The main difference here is I'm always drawing the slices from back-to-front, instead of using the half-angle direction. It turns out for emissive volumes like explosions, where most of the light is from the inside,this works pretty well. It's quite a lot slower than doing ray marching in a pixel shader (lots of passes, and you're blending in the frame buffer), but I think the results are worth it.