I tried several (~eight); unfortunately most (all?) were commercial, pay-for apps.
Of the ones I tried, OE Duplicate Remover from AJ Systems was one of the best, as was MAPILab’s Remove Duplicates from Outlook Express. Again unfortunately, the trial versions are too limited to be of any real use if you have more than a couple of duplicates. Also, MAPILab’s was too limited in its “configurability” (yet even then, it was more configurable than most other apps).
If you have enough to justify paying for an app, I would recommend AJ System’s tool. It is a standalone tool (not a plugin) that can scan all of your messages and allow you to select what to remove.
In the end, I forwent apps for manual weeding. Yes, I had almost 10,000 duplicate messages (don’t ask) that needed to be confirmed as duplicates and weeded out from the other 24,000, and yes, not all of them were duplicates, thus making it even more important to have manual control. However, I found that the Find dialog turned out to be the most useful tool to get the job done.
Specifically, I opened the Find dialog and had it search for all messages by setting it to search for any messages after OE’s earliest possible date, Sep. 1753 (I found that searching for all files before a high date, say Dec. 9999, missed any messages that did not have a date). Then I sorted them by Send date (not Received date!), and went through them.
I found that it was easier because I had marked all of the likely-duplicate messages in the target folder as Ignored/Flagged, so they stood out better in the Find dialog.
It was surprisingly easy because duplicate messages have the same Subject and Send date as good messages, so I was able to easily see them (especially after adjusting the columns).
I then went through them and deleted them as I found them (I found that it was easier to do this if I made sure to exclude the Deleted Items folder from the search because then they would disappear from the Find dialog, thus reducing the clutter and making things easier).
Finally, I went through whatever was left and did a search to see if there existed any messages like those (I found several that did not, and moved them to the appropriate folders).
I’ll admit that doing this task manually was quite daunting; ~9,000 messages in a pile of ~30,000! but once I got a handle on what to do and got a rhythm going, I got through it all in about 4 hours (that’s including about an hour for dinner, breaks, and such). Plus, since I did it while watching television, the task felt even easier and went by even quicker.
NB: I should point out, that I made a back-up of my entire message store beforehand, just in case (in fact, I had to restore it numerous times while testing those apps and trying to find an effective manual method). Also, make sure to disable automatic checking (or even block OE from connecting to the Internet), otherwise you’ll lose any messages you download since the back-up was made.