Independientemente de la configuración real de DATEFIRST, el último domingo podría encontrarse así:
SELECT DATEADD(day,
-1 - (DATEPART(weekday, GETDATE()) + @@DATEFIRST - 2) % 7,
GETDATE()
) AS LastSunday
Reemplace GETDATE()
con un parámetro @date
para obtener el último domingo antes de una fecha en particular.