I've been trying to get a realistic plume of smoke (would be coming out of a gun) but I can't get it to look white, let alone smooth and puffy. Here's a screenshot:
Here's the example of what I am trying to achieve:
Here's the .blend
Lightly colored smoke is heavily reliant on multiple scattering to produce the bright color - it's the result of light bouncing multiple times in the cloud and being reflected back to the viewer. Your material is off to a good start with white scatter color and no absorption, this will allow maximum reflectivity within the cloud. (maybe too much, actually, nothing is perfectly reflective).
But you didn't set the volume bounce depth > 0, so your volume blocks all light that doesn't make it out of the volume the first time it scatters. Increasing volume depth to allow indirect (multiple) scattering gives a whiter plume
However, you might also notice the increased depth images are noisier. (they're also slower to render). This is a side effect of increasing volume depth, it increases the possible light paths through the scene, resulting in noise until they are all sampled. If this is a problem, you can instead leave volume depth at zero and use an add shader to add in some volume emission. Not perfect, and won't react to changing lighting, but it can get you by sometimes
As for the smooth look, that's just a side effect of density. Lower density clouds don't shadow as much light, which obscures surface details. You may want to consider adjusting your ColorRamp node as well to give less harsh edges to the cloud.