An annoying bug with the Gmail for iOS app that’s been around since it launched the second version in December causes the unread count badge for the app to remain if those emails are read on a different device first. So if you received an email and read it on your desktop, the Gmail app knows the email is read but the badge doesn’t adjust accordingly.
What’s worse, once more emails are received and read, the count increases further. It’s gotten so bad I’ve had to turn off the app’s badge for fear of going insane.
So far there’s only been workaround and temporary fixes from Google.