what about:
select distinct to a temp table
truncate source table
get the temp table data back in
or
select distinct from a to b
drop a
rename b to a
?
there is no info about the size of the table, concurrency requirements or if it's a 24x7 environment (or not) ... (so again standard dba reply "it depends" ...
*edit: sorry, now i see it's not a dedupe, somehow i missed such a simple point ...