Its worth bearing in mind that GPS is only accurate on a perfectly flat road. Think about it in extreme terms if you drove your car off a cliff you may be doing 100mph but as its straight down and not along the gps would register 0mph, obviously that is extreme but a GPS will typically measure movement along the horizontal plane only.
That said i do believe the speedo is a bit inaccurate, as with most cars i have owned it reads high, this makes sense as it allows the cars fuel economy to appear better than it is. Also i would think that car companies would leave themselves open to being sued if the speedo read low, as you would argue that the car reading is at the speed limit.
Cheers,
R