Recursion in SQL prior to SQL 2003 (i.e. SQL Server 2000) is somewhat ugly; for each level in your tree you'd need to write a separate join statement back onto the original table. Provided that the number of levels in your hierarchy is fixed you could write something like this.
create table #Hell (
parent int,
id int,
name varchar(30)
)
insert into #Hell values (NULL, 1, 'The Boss')
insert into #Hell values (1, 2, 'The Boss'' PA')
insert into #Hell values (1, 3, 'Production Director')
insert into #Hell values (3, 4, 'Jim''l Fixit')
select * from #Hell H1
inner join #Hell H2
ON H1.id=H2.parent
inner join #Hell H3
ON H2.id=H3.parent
WHERE H3.Id=4 --Find the boss for Jim
drop table #Hell
Luckily SQL Server 2005 has a with common table expression that allows recursive operations to be written quite easily. See See http://www.4guysfromrolla.com/webtech/071906-1.shtml
You should also be aware of the various ways of representing trees in a database. Take a look at the slides on Trees in SQL from this presentation http://www.slideshare.net/billkarwin/sql-antipatterns-strike-back