Here is some of my code for dealing with particles:

http://code.google.com/p/skorpios/source/browse/trunk/skorpios-common/src/com/esotericsoftware/skorpios/opengl/particles/Particles.javaThe project also has an editor tool:

http://code.google.com/p/skorpios/source/browse/trunk/skorpios-desktop/tools/com/esotericsoftware/skorpios/tools/particles/ParticleEditor.javaEditor screenshot:

Basically you give each particle an angle (randomly distributed between 0 and 360 degrees to emit in all directions), and also a velocity (pixels per second is an easy unit). Then each update you change the position of the particle this way:

1 2
| x += velocity * Math.cos(angle); y += velocity * Math.sin(angle); |

Note that Math.cos/sin takes an angle in radians.

Be sure to take into account the number of milliseconds that have passed since the last update when applying your velocity.

You may want to store precomputed values for velocityX and velocityY. I do the sin/cos each update because I allow my particles' angle to change during its life.