Not sure if there's a new way to do this, but in our OSS project (MIT/X-11 license) we want to persist images of controls, with the additional option of printing.
Here's how we do that bit:
In Silverlight, WritableBitmap has a constructor overload that takes any UIElement, so you can...
1) create a WriteableBitmap using the UIElement overload
2) encode the bitmap to a .jpg (optional)
3) save the image
a) if you want a user-specified location to save, you have to use an OpenFileDialog
b) otherwise, you can save to isolated storage