Your sms.db has been corrupted by other applications. In your db all
messages has been read but the unread count does not updated
respectively. iSMS is using native API to check unread messages, and
the native API will read that unread count then return the unread
message count, but iSMS could not find any indeed from db. Then the
problem happens.
You can delete your sms.db and run mobileSMS to regenerate a new one.
then everything will be ok.