You've probably seen it already, but just in case:
http://www.nuclex.org/blog/gamedev/30-efficiently-rendering-dynamic-vertices
Some time ago, I ran benchmarks with DrawUserPrimitives() versus DynamicVertexBuffer both on my Xbox and Windows (with a GeForce 8800). With good batching, the Xbox could actually achieve up to 1/4th of the performance of the GeForce card. That was with XNA 3.1, so I didn't do any DynamicVertexBuffer tests on the Xbox.
Maybe I should go hunting for the source code of that benchmark and redo it with XNA 4.0, this time including DynamicVertexBuffers on the Xbox :)
It's sad that Windows Phone doesn't support custom vertex shaders, otherwise the particle billboards could be oriented towards the camera purely on the GPU.