This happened on my non-rooted device this week. In my case, it didn't show a charge past 93%. Then I noticed that, several hours after removing it from the charger, it still showed 93%. Later, it seemed to get "stuck" for a while at 31%.
To resolve, I let my phone run all the way down to zero, i.e. until it shut down with no power. I put it back on the charger at that point, and it charged back to 100%.
I've seen a few threads in this forum about this problem, and letting it drain completely seems to resolve it. I suspect that the battery itself is fine, but the Android/Sense software just isn't reading the battery level correctly.