Deleting duplicate based on latest datestamp entry
You can use a CTE to add a row number that starts at 1 from the newest datestamp for each e-mail address, then delete all the rest.

;WITH x AS 
(
  SELECT email, origin_date, new_opt_in_date, datestamp,
    rn = ROW_NUMBER() OVER (PARTITION BY email ORDER BY datestamp DESC)
  FROM dbo.tablename
)
DELETE x WHERE rn &gt; 1;