Usually, handicaps in Go are used between a weaker and a stronger opponent to make the game more competitive, giving the weaker player more opportunities to attack and defend as would happen in an even game. This is done in turn to avoid the game from becoming a sweep by the stronger player, with the weaker player constantly fumbling defenses. The true underlying purpose of handicapping should be seen as accelerating the learning of the weaker player as opposed to making the game more enjoyable for the weaker player. If the latter is what the player wants, he should seek play with players of equal ability.
As described in Andrew's answer, unfortunately, there is no clear way to handicap a game of chess as there is in go. However, if the goal is to use handicapping as a means to accelerate learning chess between a tutor and a student, a common thing to do is to play a normal game of chess, and upon encountering a situation where the weaker player thinks he has a loosinglosing position a switch of sides is done upon request of the weaker player: the weaker player becomes the attacker, the stronger player becomes the defender.
From personal experience, a stronger player is a better chess player not because they have some magic ability, but because they see more possibilities and understand the variations better. In this sense, the stronger player is usually able to recover the weaker player's poor position (especially given the rating discrepancy between attacker and defender) making this a very instructive and hands on learning process. As a side effect, the weaker player is given the chance to practice executing attacks correctly.
Obviously for this to work, both parties must agree that winning and loosinglosing doesn't mean much, and it is simply play for the enjoyment of the game and to accelerate the weaker player's understanding.