Check the simple, easy things first: Make sure the battery is fully charged, in good condition, and that the connectors are clean and securely fastened. Make sure the starter leads are in good condition, the connections not corroded, and securely fastened to the terminals on the solenoid. Unfortunately, the starter is rather difficult to access under the intake manifold. If that doesn't fix it, you might wish to have an auto-electric specialist take a look at the starter. That it's a BMW shouldn't be a problem; the starter is conventional in every respect.
That sticky ignition switch should be examined too.