Just for the start yo need at least the following:
 
1. USB to K-D CAN Cable (it can be any smilar in characteristica cable, but I got exactly the one like this): 
New BMW INPA K+D CAN BMW INPA EDIABAS OBD2 USB Cables on eBay.ca (item 150496451110 end time 21-Oct-10 00:17:23 EDT)
 
2. BMW Standard Tools Software (search it on torrents) This software consist of NCS Expert, Ediabas, INPA, WinKFP and Tool32. You will need INPA, NCS Expert and Ediabas programs.
 
3. Laptop or normal computer with Windows XP (yes it works under Windows 7 and Windows Vista but there are many issues with that, however it worth to try too)/
 
4. Some free time and willing to understand how all this works.
 
This is for the beginning. And once all tests are done and my self education reaches the level when I can explain the stuff to the people I will make a guide on How to code simple things in your car.
 
Do not hesitate to ask me a questions.