Agreed. The stock gauge is fairly useless and they can get a little erratic. A bit of corrosion on the ground-side can keep the reading lower than it would otherwise be. You could try attaching a wire to the sender housing (the sender is just behind the dizzy, as RC noted). Ground the other end of the wire to the neg battery terminal and see if your reading is more accurate.
A new parts store brand sender is all of 4 bucks, so you could throw one of those at it too.
If the upper radiator hose got hard and/or real hot, chances are that the t-stat was opening, which means the gauge read low. A real gauge is a neat way to go.
You could use an IR thermometer to infer temps throughout the system if you desire.
Good luck.