It seems more complicated than it has to be, but here's how I do it:
Select the layer you want to be the mask, Select All, Copy.
Go to the layer you want to mask, and click the button at the bottom of the Layer dialog that creates a mask.
Click the Channels tab if you don't already have it open, you should see Red, Green, Blue that are on; and a new alpha channel at the bottom that is off.
Turn alpha on and the RGB ones off (in that order!) and paste your selection.
Then turn the RGB channels back on and the Alpha back off to go back to the way it was before.
The layer should now be masked. If you want to edit the mask, you can pain in the alpha channel with grayscales in the same way.