(It's a little noisy, sorry about that).
Any gem that you'd find out in nature will have tons of different particles inside of it. Luckily, we can fake that by using Fresnel, Volumetrics, Emissions, and a little bit of Subsurface Scattering (SSS). Note that a little bit of Node Editor experience is recommended.
How It's Done:
We're going to start with the simple color and looks that a perfectly-clean gem would have. I used a Mix Shader node to combine a Diffuse & Glossy (with a roughness of 0.2) Shader with a Fresnel (with a IOR of 1.450) into the Factor input, with another Mix Shader (0.95 Factor) to combine the output of the previous Mix Shader with a Glass Shader (with a roughness of 0.050). Repeating the last step, I plugged in an Emission Shader (with a strength of 1) to the following Mix Shader (Factor 0.005). By plugging that into another Mix Shader, I added a Subsurface Scattering node (with a scale of 1) into the input and another Fresnel node (with an IOR of 1.450) in the Factor input. After connecting the last Mix Shader to the Surface input of the Material Output, I added in a Volume Scatter node. What this will do is fake all of the particles that are inside of the gem. I used a density of 1 with a white color, but you can tweak it to make it look more foggy or dirty. Don't forget to plug that into the Volume input of the Material Output when you're done. Here's a picture:
Now that you've got everything set-up, go ahead and experiment with it! Add surface imperfections (achieved by adding an Add Shader to the last Mix Node and plugging in an Image Texture with a Surface Imperfection picture), such as dirt, scratches, smudges, or even cracks! If you wanted to get real fancy, add in some bump map to those imperfections. I also recommend you tweaking with the roughness of the Shaders and the Factors of the Mix Shaders. I won't go any further into depth here, it's all just personal preference.
Download the Example Blender File: