You could also look into using a rally computer. A rally computer, while mainly used for racing events, typically include a speedometer and odomoter. The best part is that they can be calibrated easily, to adjust for tire wear or different size tires. I actually keep mine in my daily driver, as it has a separate display for my speed in kmh which I place in front of my mph display.
There are two types, one that uses GPS (can lose signal in forest, and not that accurate on twisty roads) and the more accurate version which uses a hall effect sensor. Basically a magnet tied onto your drive shaft and a pickup feeding the rpm signal to the computer.
Here's a few:
http://www.monitrally.com/rally/products.html
http://www.rallycomputer.com/
And here's a local fellow that knows quite a bit about the rally computers and can supply them:
http://www.rallysport.ca/rally_equip..._computers.htm