usually is. Sometimes the speedo drive unit or the cable fail but usually the bearing. Most auto parts store will have that bearing on hand for about $11.00. Not a bad idea to replace it if it's more than 3 years old anyway.
ifr your speedo quit working, that bearing is on its way out...change it and keep it greased well...there is a grease zerk on top and need to be greased frequently...good luck ...
Undo your speedo cable @ the bearing and remove the 3 nuts on the bearing cover and look @. Make sure you look for the insert as you remove the cover (you will see a drive pin,for lack of better words) make sure you have this. Look for bearing grease and any rust @ all. Replace if you see anything like shavings or RUST in the grease of any type. This means it is gone bad.As stated above very inexpensive to fix BEFORE they take out the shaft and anything else.