It is hard to write a good ALT text because you need to give a written equivalent to the image and yet be concise. You may also want to include key words so that search engines index the image effectively.
I recently found a good article by Sarah Horton on "Writing Alternate text for images" (yet another good link from Laura Clarlson's web design reference site : thanks again Laura!). Alternate text (or "ALT text" is the text that you will see as a tool-tip if you are an Internet Explorer user and you hover the mouse over a web image for a while. More importantly, ALT text is what users use to figure out the purpose of an image if they can't see the image itself - for example they are a blind human, or are a search engine robot.
So the first goal of ALT text writing is to provide a text equivalent to the image - not exactly a title or a caption, but a substitute for the value the image adds to the page. How best to do this depends on what the image is doing on the page - is it for information, for mood, for branding or for something else? Sarah Horton's article gives some examples. Even if the image is useless to the unsighted users ("eye candy") , they need to know that it is useless for their interpretation of the page and so can be ignored.
My attempts to do meet this first goal often lead to long ALT texts, and Sarah's article points out that this is a problem, A sighted user can quickly notice that an image is just the company logo again and not pay it much heed. An ALT-text using user may have to read the ALT text every time to get to the same conclusion.
Lastly, search engine robots use the ALT text to figure out what the image is and so how best to index it. And so - if you can do this while meeting the first two goals - it is worth thinking about how you would like the image to be indexed, and include suitable keywords in the ALT text (if done well, this ought to make the ALT text more useful to humans too).