Here is another approach with the advantage of restoring the @@DATEFIRST value after your calculation:
DECLARE @dt datetime, @date1st int
-- Save @@DATEFIRST so we can restore it later
SET @date1st = @@DATEFIRST
SET DATEFIRST 7
SET @dt = '10/12/2009'
-- Change to first of the month
SET @dt = DATEADD(d,1-DAY(@dt),@dt)
IF DATEPART(dw,@dt) 7
-- If not already Saturday, add a day until it is Saturday
WHILE DATEPART(dw, @dt) 7
SET @dt = DATEADD(d,1,@dt)
PRINT CONVERT(nvarchar(30), @dt, 101)
-- Restore DATEFIRST
SET DATEFIRST @date1st