I don't understand what the volume socket of the shader output (in Cycles) does. Just for experimentation, I tried plugging an emit shader into the volume and a glass shader into the surface to create a light coming out of a glass ball, but all I got was the glass. What is the use of the Volume socket and when should you use it?
This feature has now been added, the official documentation can be seen here.
So now you can do just what you suggest in your question:
Have a look at this post: Rendering smoke in Cycles?
The volume rendering socket in cycles is not currently implemented, but it's planned for 2.69-2.70
Presumably, it will be used for rendering volumetric materials. (clouds, smoke, fog, etc. it may also mean the spot lamp will be able to use "halo" like BI)
Also see what the wiki has to say:
The volume shader is currently under independent development.
When the surface shader does not reflect or absorb light, it enters into the volume. If no volume shader is specified, it will pass straight through to the other side of the mesh.
If it is defined, a volume shader describes the light interaction as it passes through the volume of the mesh. Light may be scattered, absorbed, or emitted at any point in the volume.
A material may have both a surface and a volume shader, or only one of either. Using both may be useful for materials such as glass, water or ice, where you want some of the light to be absorbed as it passes through the surface, combined with e.g. a glass or glossy shader at the surface.
Also see the Gsoc project to add cycles volume texturing with openVDB, and this.