Independentemente da configuração real de DATEFIRST, o último domingo pode ser encontrado assim:
SELECT DATEADD(day,
-1 - (DATEPART(weekday, GETDATE()) + @@DATEFIRST - 2) % 7,
GETDATE()
) AS LastSunday
Substitua
GETDATE()
com um parâmetro @date
para obter o último domingo antes de uma determinada data.