Hi, i had the same problem, my mechanic told me it could be the either the speedo head, the electronic pick up at the other end (the name of which i forget) or a bad electrical connection some where between the two.
The Speedo head and the pick up cost about 60 quid each, a test by an auto electrician who could tell you which it is, would also cost around sixty quid..ish.