The idea is that the particles are created as vertices with a start position and color. Then a current position and velocity texture is maintained where the velocity is dependent on outside variables (such as mouse or perhaps totally random). Each frame the velocities are calculated and added to the positions. Then the particles are drawn using the original vertices and the position texture is sampled in the vertex shader (VTF) to get the current position and set the position of the vertex to that.
This can also be done much more easily with the CPU, but with this technique the particle system is maintained with the GPU which is obviously very desirable if you have millions of particles.
If the path of your particles won't change then you can define a function that gives you the position if you give it the time passed and then VTF as well as maintaining these textures won't be necessary. I might consider doing this instead and simply create some variety in the functions by passing a random number with each vertex.
This is just one of the applications of VTF.
The solution should both be possible with DirectX and OpenGL.
There's a link for the source code in the description of the video which uses XNA 3.1.