Possible causes include:
* Faulty Vehicle Speed Sensor (VSS): This sensor is usually located on the transmission and sends a signal to the instrument cluster. It's the most common culprit.
* Damaged wiring between the VSS and the instrument cluster: A broken wire, short circuit, or corroded connection can interrupt the signal.
* Problem with the instrument cluster itself (less likely): Although the odometer works, a problem within the speedometer component of the instrument cluster is still possible, though less likely given the odometer's functionality.
* Gear in the transmission: In rare cases, a damaged gear within the transmission that drives the VSS could interfere with the signal.
A mechanic would need to diagnose the specific issue by testing the VSS, its wiring, and potentially the instrument cluster itself.