My 2007 328i was pre-wired for satellite radio. I bought the receiver (mounts in the trunk floor) with mounting bracket and fan from Circle BMW, mounted it myself (they sent the instructions), then took it in to my local dealer to be coded.
Sat Receiver p/n: 65 12 9 192 274 ($415)
Bracket/Fan Kit: 65 11 0 432 318 ($56)
Coding at my dealer: $100
The satellite receiver comes with a year of free Sirius service - they will see that you get a year free when you call Sirius to activate it and give them the radio serial number.