They are really very simple and I'd be surprised if it was broke at all. Do you hear it clicking while you drive.
The thing that happens to them is they don't like to be reset quickly, you can't just punch the button.
Press it in and hold it and slowly let it out and try it. Everytime I just give mine a quick push it does not work unless I do the above.
I have taken the odometers apart and there really is nothing that can break in them unless you somehow broke a gear but you would really have to work at it... It's just a small motor that is geared right to the dials. Very simple.
Now if the motor is not running (stuck) or the digital drive for it is bad then that is a different story. It is a type of stepper motor with driver circuit. In that case you would need to find a replacement speedo board.
Try a slow reset first.
[This message has been edited by Dodgerunner (edited 09-04-2009).]