I just finished a headgasket job on my 535i. It took many hours of labor and a few hundred $ in parts. At the minimum you'll want to get a upper engine gasket set which was around $100 and new headbolts for a few $ apiece. Its a doable job if you have another car to drive while its apart.
Search the forum for more info, there are many of threads on doing the M30 headgasket replacement.