It is indeed a two-step process, but doesn't require anything at all.
The idea is to create a new empty table with almost the same structure as the original table. The only difference is that the new table has some sort of unique constraint on those tables that together may not contain duplicates.
Then you just insert the records from the old table into the new table, and the new table will refuse all duplicates because of the unique index.
Then you can rename/drop the old table and rename the new table to the old tables's name.
remember to make backups, and don't drop the old table, rename it. When you are happy that the new table is ok, then you can drop the old table.