In Sql Server 2005, you'll be able to use the ROW_NUMBER() / OVER function to generate this.
In prior versions, I don't know any other way than to pre-select into a temp table or table variable with an Identity column
Declare @RownumData Table (
RowNum int Identity,
Surname varchar(100),
Forename varchar(100)
)
Insert Into @RownumData
(Surname, Forename)
Select Surname, forename
From tblAddress
Order By Surname, Forename
-- View results
Select * From @RownumData