You may want to check to see if your duplicate contacts are essentially different sets of contacts, such as:
* "Phone-only" contacts, which are stored only on your phone)
* "Google" contacts, which are essentially stored on Gmail's servers and synchronized with your phone.
* "Corporate" contacts, which are essentially stored on a Hotmail or Exchange server and synchronized with your phone.
* "Facebook" contacts, which are essentially stored on Facebook's servers and synchronized with your phone.
* Etc.
If you go to edit one of your duplicate contacts, at the top does it say "Phone-only" or "Google" or "Corporate" or something? And if you go to edit the duplicate, does it say something different at the top? If so, I don't think there's any kind of app that can help you. You should probably:
1) Delete the duplicate contact source (which also frees up phone memory), and/or
2) Change your "Account & Sync" contacts settings to uncheck the "contacts" boxes for accounts with contacts that you don't want to sync (which also frees up phone memory space), and/or
3) Go into contacts and change the "Display Options" so that you're only displaying the contact source that you want to see. (This doesn't necessarily free up space on your phone if you're syncing multiple contact sources.)