Prova con questa..
dai test che ho fatto sembra migliore della prima..
fammi sapere!! 
Ciao!
set datefirst 1;
declare @week int
declare @anno int
declare @data_settimane datetime
declare @primo_giorno int
declare @lunedi datetime
set @week = 31
set @anno = 2000
set @data_settimane = dateadd(day,@week*7,cast(cast(@anno as char(4)) + '0101' as datetime))
set @primo_giorno = datepart(dw,@data_settimane)
if @primo_giorno > 1
select @lunedi = dateadd(day,1-datepart(dw,@data_settimane),@data_settimane)
else
select @lunedi = dateadd(day,-7,@data_settimane)
select @lunedi
set datefirst 7;
Alx81 =)
http://blogs.dotnethell.it/suxstellino