When you agree to perform services for a client, you are entering into a legal contract -- you promise to do the work, and the client promises to pay you for it. Many independent contractors rely on handshake agreements with their clients. Instead of writing down the deal, the contractor and client discuss what the contractor will do and what the client will pay, and that's the end of the story.
Until the deal falls apart, that is. If the client refuses to pay, insists that you agreed to perform more or different work, says that you agreed to charge less than your usual rate, or otherwise won't live up to his or her end of the bargain as you believed it to be, you're in a bind. You could try to convince a court that your version of the contract is correct, but it will be your word against the client's, and there's no telling whom a judge or jury will believe. Whether the client really does remember the agreement differently than you or is intentionally trying to rip you off, you don't want to end up in this situation.
What's more, a written client agreement can help you establish that you are an independent contractor, not the client's employee -- which will be very useful if the IRS or another government agency questions your status.
A written client agreement should cover at least these topics:
There are also a few standard legal provisions you should include, such as a statement that you and the client are not partners in business and that you and the client have no outside agreements about the deal except what's been included in the contract. You can find language for all of these provisions (and many more) in Working for Yourself: Law & Taxes for Independent Contractors, Freelancers & Consultants, both written by Stephen Fishman and published by Nolo.