Funny, I just fixed mine at the weekend, but mine was only out a few mm.
First I set the door height, then adjusted the latch mounting points.
Maybe an easier way, but this is how I did mine.
Remove the cover from the door hinge, then loosen the 4 bolts that bolt the hinge to the door. Lift the door to it's approx position and tighten the bolts.
Move the door to the closed position, then see how far out the mounting posts are on the body. On mine, there are two, one for the door latch, and another for setting the height. Loosen both latch points on the body (not the door) and move to the right position. On my car, I could not move the latch mounting point high enough, So I removed it and got out a round file. filed the hole (elongated it), then put it back in the right position. Once the latches on the body align up with the door, loosen the door bolts again, shut the door and tighten the bolts.
All this took me maybe 3/4 hour and a lot of trial and error fittings, just remember don't try to move the door too much in one go, do it in small steps.
Also on the very last fitting, you might want to tightening the door bolts while it's not latched, and move the door a VERY small amount higher that the latch, by small amount I mean a few mm.
I'm sure some body expert will tell you the correct way, but the above worked ok for me, but it's only been 1 week so my door may drop yet...
Now if only I could get a good fit on the trunk lid, I have spent hours on that and still not as good fit as I would like. I think I will have to remove and reshape the hinges on that one though.