If it's a diesel, before you spend any money:
Check that the socket that the speedo sensor plugs into has 3 wires (light blue/red, light blue/white and black).
My speedo didn't work when I got car and I assumed sensor was faulty. Ordered new on from Fiat at £28.06 and fitted it - no change.
Checked wiring diagram in Haynes manual and found that wrong wires had been connected together. Fortuneately no harm done.
Other plug had 2 wires (white/red and black). This one lives directly on back of battery tray in a blank housing.
Connected correct wires and hey presto! working speedo!!