How to divide a cake fairly among a group of people

Here's a puzzle from Martin Gardner's "Mathematical Games" column, which ran for many years in Scientific American. I found it in his anthology, My Best Mathematical and Logic Puzzles, which is only $(removed) on Amazon.

There is a simple procedure by which two people can divide a cake so that each is satisfied he has at least half: One cuts and the other chooses. Devise a general procedure so that n persons can cut a cake into n portions in such a way that everyone is satisfied he has at least 1/n of the cake.