I've had good luck with the Carly app on my vehicles. On my e90 it showed specifically in English what the issue was and which cylinder the issue was on. I currently have the Android app but will be getting the iPhone version soon. The current version shows support for Coding, Diagnostics, and Engine Parameters. It doesn't appear to be able to reset the service info, so I'm not sure how important that is to you.
Carly offers this for your BMW model