Microsoft Dynamics CRM allows you the option to merge two accounts or two contacts. On Merge a person can select which fields in each record are accurate and using the data from the selected fields the primary record is updated and the secondary record is flagged as deactivated.
This ability to merge is fairly powerful because of the human interaction. A human can easily tell which of the data from individual fields is most accurate when data gets really messy, whereas a system would have to have more rules and black and white requirements.
Good for review of a few duplications, but not as good for mass cleanup.
A couple of things to watch out for, if you merge two contacts and those contacts are uniquely tracked in two different peoples Outlook. The deactivated or secondary contact would be unlinked. This means that one person might not be too happy.
If you have a lot of cleanup to do you will want to consider how that data is being used “offline” or in other applications before your cleanup efforts.
Once the data is cleaned up you might want to review your deactivated data for further cleanup via the delete functionality.