Most applications have some sort of role system. You have administrators, who can do basically everything, semi-administrators and “regular Joe” users.
Now, sometimes you want, as an administrator, be able to login as a user to solve some problem, or manage settings for a user, or whatever.
Harm did a very nice write-up on how we did this in a Rails project of ours. You can read the article here.