If you are using cycles render engine (and blender 2.7+)
You actually want to create two different spheres, one for the smoke and one for the glass. The reason for this is because you don't want the sphere to be solid, but the smoke should be, i.e. you don't want smoke inside the thickness of the wall of the sphere but within the sphere.
So I simply created a sphere, duplicated it in place, and gave one of the spheres a solidify modifier with a thickness of -1/8in. The "thickened" sphere simply has a glass shader. The other sphere will contain the smoke and has the following node tree.

It is primarily a volume scatter shader with a little volume absorption added in. The scatter is given a variable density with a procedural noise texture. The color ramp node makes the noise more distinct and the multiply node controls the overall density.
Here is the final render:

A couple of notes:
This is for cycles, I do not do much (anything) with BI, but I would recommend using cycles for this since you are going for photorealism.
You must be using blender 2.7+, previous versions of cycles do not support volumetrics.
You need to knock up the volume bounces under properties editor > render > light paths.
