If you’re using the Studio version of Cinema 4D you have access to the PyroCluster module, which is intended for exactly these kind of effects. Essentially you create a particle emitter with a special PyroCluster shader and another object to act as a container for the effect, typically an Environment object in the most common scenario, which you then apply the PyroCluster Volume Tracer shader to. It’s pretty easy to get started with if you know a bit about particle systems already, but approaching an effect such as in the picture is definitely going to take some time if you haven’t really done this kind of work before.
The popular third-party solutions for volumetric / fluid effects are TurbulenceFD, DPIT Effex, and the reigning king of fluid simulators, RealFlow. These of course come with the usual tradeoffs of being more expensive (assuming you already have access to C4D Studio) and complex but with a greater degree of flexibility and power. Whether these are worth it really depends on what you’re going for, how much time you have to put into it, and how much of this kind of work you foresee doing in the future.
In any case, it’s definitely best to start out with PyroCluster and see how it works out for you before diving into anything else.