I'm having the same exact problem, and it is driving my users crazy.
Deleting the cache/queue.php file works until the next time it happens...usually within a day or so. No idea what is triggering it to start happening, and manually deleting a file when it decides to start spewing duplicate emails out is not an acceptable solution.
I've read about this problem in quite a few places, but have yet to see a solution.
However they couldn't reproduce it, so they said "hopefully it will be fixed in 3.05." It is not. Here's text from that ticket:
At the moment there is no real solution because we are not able to reproduce them. But i hope the latest changes to the creation of cache files will also solve those (the changes will appear in 3.0.5).
HOWEVER ... the suggestion "One way you can make sure this does not happen again is setting the message queue size to 0. This will result in immediate notifications." seems to be a workaround for now.
I think I might have a clue as to what is triggering this, at least on my system.
I notice that the repeated email notifications are ONLY sent for PM notifications - not regular thread notifications. Also, the email notifications are always sent to the same people - for instance, when I get a PM as board admin, the email notification for this PM is sent repeatedly to me, and four other board members (that I know of). Yes, that's right, email notifications for a PM that is sent to ME, is sent to other board members. This happens rather consistently. WHEN this happens, it appears to go into a loop, sending this notification out over and over again.
A day or two later, it starts happening again, for the SAME PM.
I set my message queue size to zero, and it partially solved the problem. It doesn't go into a loop sending the notification out multiple times anymore. However, what it DOES do is still send out the notification every couple of days. As well, the PM in my "in" box, which I read and replied to several days ago, mysteriously gets marked as "unread" once more, and pops up as a "new" PM when I log onto my board.
The only way to stop this from happening is actually DELETING the old PM's from my IN box.