I have to promote this tutorial from Blender Guru, simply for the fact that I have wanted to do something like this for ages.
Created in Blender's 2.72 test build (The project crashed very frequently in earlier builds, 2.71 included.). Rendered and composited in Cycles.