You would only want to draw to an off-screen surface (RenderImage) if your particles do not change each frame. That'd be a pretty boring particle effect, though.
Drawing to another surface every frame will only reduce the frame rate since the render target has to be changed every so often, plus you are using more resources.
I have particle effects in my engine, and just drawing like any other sprite works just fine. Granted, it is far from ideal since that is a lot of calls, but from what I have seen, draw calls do not have as much overhead in OpenGL as they do in DirectX.
The only places you can really use an off-screen surface for performance gains by drawing less is if you:
1. Have relatively static images (you don't need to update the RenderImage much... exactly how much depends on other variables)
2. The RenderImage you are creating is relatively complex (a bunch of overlaid sprites, like a GUI system)
3. The cost of managing the updates and tracking the state is relatively low
For many games, the number of places you can utilize an off-screen cache is relatively low, and it can add an incredible amount of complexity to your render logic. So my opinion - don't bother trying to cache parts of the screen.
If you want to display more than your system can handle, you're going to want to try to find some other ways to "cheat" it. Draw larger particles instead of smaller ones. Cluster multiple particles together in a single sprite to make it appear like there are really more. Make use of fragment shaders where you can. Etc.
I SDL I used to blit all my particles onto a surface and then drew the surface to the screen. Any way of replicating this behavior?
That is exactly the same as you are describing for SFML, and its very easy with SFML 2.0. Its just that it doesn't bring any benefit unless the particles in your particle system are completely static.