You can first strip the time from the date you are working with.
This works for me:
declare @mydate datetime
set @mydate = GETDATE()
SELECT DateAdd(day, -1, DATEADD(week, DATEDIFF(week,0,DATEADD(day, DateDiff(day,0,@mydate), 0)), 0))
Interesting issue. Too bad you have to double the number of calculations you're working with.
Wayne
Microsoft Certified Master: SQL Server 2008
Author - SQL Server T-SQL Recipes