this is what i've come up with years ago:
it returns Monday as 1, Teusday as 2 etc..., regardles of @@Datefirst.
declare @Date datetime
select @Date = '2009-12-17'
selectcasewhen (datepart(weekday,@Date) + @@Datefirst - 1)%7 = 0
then 7
else (datepart(weekday,@Date) + @@Datefirst - 1)%7
end