Just did this myself...PAIN IN THE A$$.
The leather is cheap, it's the attaching to the foam base that is the issue. The ability to get a good clue that will hold the material around the edges is key. In the end some wedging trimming and finagling got it to work.
An upholstery shop should do it no problem, but it is a more intricate piece than you think because of how it loops down into the center counsel. But for the pain and effort I'd pay the $400.
Some other options (out of the box thinking as a solution)
https://www.leatherz.com/products/z4-armrest-bundle
https://www.leatherz.com/collections.../mark4-armrest
https://www.leatherz.com/collections...-cupholder-top
Review:
http://www.zpost.com/forums/showthread.php?t=841879
....and another alternative:
http://www.roadstersolutions.com/page106.html
.