Theres a romanian guy on ebay which we all buy from, he has software and the cables needed. 35$ is the basic and works with the e53, but you need different cable for the 07+ and stuff.
His ebay id is "eugenmosmonea":
eugenmosmonea | eBay
Hes great and responds instantly with any questions you may have
But i also found this as well:
BMW USB OBD Diagnostic Cable Inpa Ediabas NCS Expert Dis V57 SSS V32 GT1 Progman | eBay
This will allow you to read codes and code parts of the car such as light functions, sounds, windows up with key and such as well as adjust suspension height and stuff.
Buuut you need to learn how to use it...
If you cant then id just get a regular code scanner.