Please post table definitions and sample data (as INSERT statements) if you want a query written.
If you just want advice, then you can use ROW_NUMBER, partition by ContactID Order by RenewalDate DESC and filter for that = 1
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability