What I have is basically a problem which is easily solved with multiple tables, but I have only a single table to do it.
Consider the following database table
select distinct * from SomeTable a inner join ( select max(emailAddress), userId from SomeTable group by userId ) b on a.emailAddress = b.emailAddress and a.userId = b.userId