Regardless of the actual DATEFIRST setting, the last Sunday could be found like this:
SELECT DATEADD(day,
-1 - (DATEPART(weekday, GETDATE()) + @@DATEFIRST - 2) % 7,
GETDATE()
) AS LastSunday
Replace GETDATE()
with a parameter @date
to get the last Sunday before a particular date.