Speed is crucial when I need to dedupe a large table with many columns. So I employ this technique, which is applicable to any table:
delete T from
(select Row_Number() Over(Partition By BINARY_CHECKSUM(*) order by %%physloc%% ) As RowNumber, * From MyTable) T
Where T.RowNumber > 1
I hope this helps you.