(it is possible to draw additive and alpha blended particles in a single draw call).
How do you do that? (I'm an OpenGL beginner)
I suppose with the blend function: Dest * (1 - SrcAlpha) + Src
If SrcAlpha is 0, it simply reduces to additive blending.
If SrcAlpha is between 0 and 1 you can achieve alpha blending but you have to premultiply your textures by the alpha value first.
This also allows you to seamlessly blend from explosion to smoke and other cool effects.