Jumping in the discussion here. I've been having this problem ever since I upgraded to snow leopard. I have a MobileMe account, as well as 5 POP accounts. I'm a server admin, and run my own mail server (which runs 4 of those POP accounts). I'm having the issue with all 4 of my hosted email accounts and the one POP account that I'm running off a different server.
I've tried the fixes listed in this incredibly long thread, always with temporary results. I have even tried setting mail to delete messages on the server immediately after downloading them, and that was utterly useless.
What it LOOKS like on the server end is that Mail is not sending a sort of "message retrieved" signal to the mail server when it downloads a message, OR Mail is not recognizing previously downloaded messages when the date changes (i.e. at midnight Mail sees the messages downloaded the previous day tagged as "yesterday" which Mail thinks is different from what it downloaded before because when it downloaded it, it was tagged "today") (Did that make sense?) Either way, the POP server is never able to tag the message as "retrieved" and hence resends the message... This does seem inconsistent, some messages get tagged, some do not... either way the issue seems to be with the Mail program, not with the POP server.
Essentially, it's a bug in the Mail code that needs to be hammered out.
Anyhow... there's nothing I can do on the server end. It seems that a CLEAN install of mail will help the problem (that's what I'm playing with right now). I would advise backing up all your old emails, and deleting both the mail preferences and the entire CONTENTS of the ~user/Library/Mail folder.
You will need to completely reconfigure Mail after this. This SEEMS to be working for me now. All my POP accounts are behaving nicely. I'm going to keep my fingers crossed this is the case, as I really don't have time to troubleshoot this, and getting about 50 of the same messages a day can really grate on my nerves. 🙂