I personally never answer questions about my previous salary or my expected salary. When HR has given me forms to fill out that have questions about either I just leave them blank, and they've never made an issue out of it.
Some recruiters tend to be a lot more pushy about it, but I just stick to my guns, and refuse to budge on the issue, telling them that I cosider that information confidential. A couple recruiters have refused to work with me because of this, but most are much more understanding. There's certainly no shortage of recruiters out there, so I really don't feel deprived of many opportunities just because a couple have walked away.
I've had one recruiter insist on it because they said they were paid by employers to get that number. They're basically insisting that I participate in a free salary survey for them, for which they'll get paid. Maybe if they shared their cut of what they were getting for that information, I'd consider giving it to them, but otherwise naming a number first will put me in a weaker bargaining position, so I don't.
There's a flip side to this, however -- whether to share salary information together with other employees. In the US it's frowned upon, but I hear it's quite common in Europe. I've also heard it argued that employees knowing each other's salaries makes it harder for employees to get taken advantage of by their employers -- which is probably why some employers have tried to forbid their employees from talking about their salaries with other employees, and why I've considered doing so myself, though I haven't yet. It's just such a taboo subject at work. Nobody talks about what they make.