Bueno pues resulta que si funciona correctamente, pero como no dijiste la versión de Delphi que utilizabas.
En D5 no exite DayOfTheWeek sino DayOfWeek, ahora lo he probado con D7 y funciona sin ningún problema.
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
var
Month,Year,Day : Word;
Fecha : TDateTime;
K : Word;
begin
DecodeDate(Now,Year,Month,Day);
Fecha := EncodeDate(Year,Month,2);
K := DayOfTheWeek(Fecha);
ShowMessage(IntToStr(k));
end;
Un Saludo.