During my time at Canalside Studios I developed a CPU based particle engine in XNA, here is a old video of it in action:
The engine was used in 3 titles whilst I was working there, here is an early video of one of them, Hexothermic:
Another Game I worked on at Canalside is G3:
Finaly here are two videos of CPU based particle engines I have created in DirectX 10 for my final year dissertation. The first uses inheritance to create different emitter types and processes the particle rotation in a slghtly different way (has to convert from euler angles to world space vectors), resulting in poorer performance, it can only render 8000 particles on screen at 60FPS:
And here is a CPU based particle engine built using templates, no angles are needed, velocity is used directly as the direciton in which the partciles fire, it is able to render 10000-12000 particles on screen at 60FPS: