Unless you have a donor speedometer, parts are not available for the internal workings.
If you don't feel like going into the speedometer yourself, typical repair for this is around $180-200.
This usually includes a thorough cleaning, and recalibration.
I was bored at work about a month ago, and found a repair shop in your general area that does repairs on BMW motorcycle speedometers.
Southern Electronics in Richmond, VA.
http://carradio.com/