I own two GM vehicles and both have lost their speedo. The 2004 Duramax has lost twice. Each time it's been about $450 to $500 and several days in the shop. 2003 GMC Envoy lost the speedo but the cost to fix it is about $1500. Stepper motors go out.
There was a gent on here who's Son fixed them for a reasonable price but you still will be without your vehicle for several days. Or if you're so inclined you can do it your self for about $35. Get the stepper motor off Ebay.
Don't know what else to say. GM has this problem and they know about it but won't issue a recall.