Asking if you're interviewing elsewhere is quite normal. Asking you to list the companies or positions isn't, though it's becoming common.
Recruiters (whether internal or external through an agency) ask if you're interviewing anywhere else because they want to get a sense of your timeline. That's because there's a fair chance that you might get a job offer from one of the other companies, at which point you'll be faced with a difficult decision. In most cases you would have a few days to consider such an offer during which you'll go back to any other companies you're interviewing with, mention the offer and ask them if they can accelerate their process. If they're truly interested in you they'll often then make you an offer as well.
But if their interview process is slow or there are potential issues with stakeholders being away the recruiter will generally attempt to clear your candidacy for fast-tracking in advance if he knows that you might get an offer elsewhere. In that sense it is useful for them to ask in advance. Note that you would generally only mention that you're interviewing elsewhere if you've actually gotten a few interviews for those applications, meaning that you've passed the initial screening. It's also courteous to mention that you're in the later interview stages for other positions when you've reached that point in an application.
Asking specifically for what positions and at what companies you're interviewing is a question that's probably born out of a recruiter's idle curiosity but it's really none of their business. I could only justify asking that question of recent graduates to get a sense of their attitude towards job searching and whether the position you're hiring for matches the types they're applying to. One other exception pointed out by WindRaven in his comment and Vic in his answer, is that external recruiters don't own your candidacy unless they bring you into contact with a company first. They may ask about your other applications to avoid a double submission (for which they wouldn't be paid).
To avoid listing specifics, just deflect the question:
I've applied to a few positions and will let you know if I get the sense that I'm in the final interview stages for any of them.
I do have a few applications in the final stages and those could result in an offer in the next few weeks.
If they persist in asking about specific companies, deflect some more:
Well I've had multiple interviews at a few companies but they haven't really made me an offer yet.
Since they haven't actually sent me an offer yet I feel it would be premature to mention them.
If an interviewer is still asking at this point they've gone from asking a silly question to being downright rude and you can just be as direct as you like in refusing to list the companies.
If you're asked this question before a personal interview such as in an online application, just skip the question.