If its a gearing problem, it will be off the same percentage at all speeds. Also the odometer will be off the same percentage. This is a easy problem to correct with a gear adaptor. Any speedometer shop can help you with that. Check the links page or do web search for speedometer repair.
Like the above post said, these are easy to work on and clean. Take it out and go inside to a well lighted work table. Slowly pull it apart and clean it with your choice of cleaners, I like brake cleaner. When reassembling use a lite machine oil spareingly where needed. The odometer numbers and gears are a little tricky but not to bad.
If the cleanning doesn't help, it will need to be sent out for recalibrating. If the magnet is weak, the odometer will be close or right on if the gearing is correct and the speedometer will be off . The faster you go the farther off it gets. Unlike gearing which will show a steady percent off 2%, 3%, etc.. this will be nonlinear. Does that make since? The faster you go the higher the percentage it reads off.
Mine has a weak magnet, so at 65 it was showing 56. To correct it, I just left the glass out so I could place the needle where I wanted. I hit the highway and checked it against the mile markers with a stop watch for two minutes and two miles. Ten miles in ten minutes will let the differences show more, but here in town it hard to drive right at 60 for ten miles with out holding up traffic or getting run over. The odometer was right on so I knew the magnet was weak. Since it read 9 slow, I pulled the needle and moved it up 9 mph. Now at slow speeds it's off but at 65 it reads right on. I can judge speeds under 35 or 40 pretty good, its the faster speeds I don't want to get caught at

. Joe