i just use my gps most of the time. three diff gps all say the same speed (testing) and it's easier to see than the guages are most of the time. my speedo has always read about 2 mph over what I was doin with running diff tire sizes (205/50/16, 215/35/18, and 215/40/17). finally went to a 215/45/17 and now it's reading the correct speed.
what size are you running and is it reading 4mph over or under? might wanna get something changed so it reads right. not so much for the speed, but the odometer accuracy.
yeah, your tire diameter is most likely too small. saw in another thread that you were running 215/40/16 correct? if that's right then your tire diameter is 22.77". the 205/50/16 is 24.07" and 215/45/17 is 24.61". with that smaller diameter you have good size difference causing your speedo to be off almost 5.5%! obviously cause the speedo and odometer to read more miles than you are actually putting on the car.
i would suggest either getting it recalibrated for the size you want to run or switching to a bigger size (would fill in some wheel gap and more sidewall for a softer ride with less risk of blowouts)