If an employer outright asks for a bit of information, don't avoid giving it; that can get your resume disregarded as someone who doesn't follow directions. There are ways to provide them with enough information without restricting your later options too much.
The rule of thumb I've heard about salary negotiations - which I don't know how true it is - is that the first side to mention a hard figure loses. I don't feel too comfortable giving a hard salary figure in a cover letter, though sometimes - depending on how much I know about the company and its relative compensation rates - I may give a range.
(EDIT: based on a really good comment-and-link from dave, it would seem like giving your acceptable salary range for a given position would be the best way to get your foot in the door, but avoid underbidding yourself too drastically.)
Another tactic is: when asked what your ideal desired salary is (or when asked to put that in a cover letter), use the slightly evasive "I'm aiming for the local market rate for this position." That lets the company know that they're not going to be able to get away with completely lowballing you, but neither are you expecting ridiculously high pay (though it might be a good idea to research the local market rate for the job in question, though; and if you have extra skills that make you a really strong candidate, you might be able to add on some modifiers, and negotiate).