You might be able to fix this yourself. Take a look inside the gap. Do you see some white plastic pins sticking out? The pins press fit into holes in the door inner sheet metal. Do they look old and discolored or broken? If so, you can replace them and probably fix it. With heat/age they tend to loose holding power.
Look closely and you will see that the pins are in a sort of pocket in the door panel. With a pair of thin pliers you can slide it out and remove it. It will not take a lot of force to remove it, just a bit. If you have to really force it, stop and look again. They cost about $1.00 each at the parts desk.
If you choose not to do it yourself, any BMW dealer or general body shop can do it for you. Dealer might be overall cheaper - they will have the parts. A n independent guy will have to go to a dealer for parts and probably charge you labor for that travel.