+1 on that...the OEM BMW parts are the best.
There's a million ways to skin this cat, but I'd do something like this:
Any aftermarket fan should have a standard 4-pin relay and fuse. I'd mount that to the car up front, maybe near the AFM. I'd strongly suggest disconnecting the battery until all wiring is completed. I'd tap into switched power under the dash to the toggle switch, maybe off the stereo harness. Then I'd run the other toggle switch terminal wire through the firewall plug to relay terminal #85. Next, wire relay terminal #30 with an inline fuse right off the power block on the passenger side firewall. Then, run the fan power off relay terminal #87. Finally, wire both relay terminal #86 and the fan ground to the front grounding post (driver's side inner fender).