I used the Dastek Uni-Q which allows upto 5 maps and is basically a piggy back device.
I never had any BMW warranty issues with it. There is also a sepperate plug n play wiring harness that can be employed to wire the Dastek unit with the BMW ECU so that there is no cutting into any of the wires in the BMW wiring harness.
http://www.dastek.co.za/
Rob Green did the chip mapping on their dyno. Those boys know their game and have been around a long time.
http://www.rgmotorsport.com
To switch maps on the fly, I used a simple small 3 way toggle switch mounted next to the Tyre Pressure Monitor Reset switch in front of the ashtray. RGM now has a small 5 position radial switch so that all 5 maps can be accessed. Maps can also be selected via a bluetooth enabled device, but nothing beats a manual switch
While your about it, you may want to get the Auto Box reprogrammed to the latest software. Mine was quite crappy initially and was much more responsive after the BMW re program.