To clear the badge icon open terminal and type:
killall dock
Right. And that has been working for me ever since I read about it in this thread. I was hoping that this new method could be an even easier work around.
And here's the deal. I have a stuck badge right now. The conversation does not exist. But the great part about this new way to find the offending message is still helping me (even though I can't fix the badge by deleting something that doesn't exist). This process tells me which message is causing the problem. It shows me the message that is "unread" even though it was deleted yesterday from all devices.
If anybody is interested, the offending message is coming from my car, telling me that it is finished charging. It gets stuck about once every five messages.
PS... I should mention that Dock needs to be capitalized in the terminal command. Won't work otherwise.