Personally, I would go with a company that has a proven record with BMW.
Evolution is well known for Porsches, but not so much for BMW.
I had Evolution do a tune on my Ferrari. There were a lot of issues with the tune and I ended up taking it off. They did refund the money, but I was still out 600 bucks for the time for the mechanic to install/take off the tune.
In the Ferrari, they had to remove the ECU's from the car, which is a big expense and pain to do. I'm pretty sure they don't do any of their tunes via the OBD.