As you known, domain brainstorming is one of first steps when you want to set up a new web site. How to choose a good domain? That's a very good question.
To do this step, you should ask your friends about keywords related to your business that they think first. The rest task is "combine keywords and choose the best name that are still available on Internet".
You can check some guidelines here for this. Actually, that's not simple!
Fortunately, there are some tools to help you check available domains and give you some good suggest names.
BustAName - gives the widest range of available options: it mixes the given keywords, gives synonyms for each one, adds prefixes and suffixes, shows both singular and plural versions, drops last vowel, checks for both hyphen- and non-hyphen versions. The tool dynamically checks for 3 top level domains: .com, .net and .org
Domize - shows information on domain names availability one-character shorter than the one specified (covers 3 TLDs: .com, .net, .org).
PickyDomains.com — PickyDomains employs actual people who suggest names for your domain. The process begins by registering with the service, providing a description of your site, keywords and your preferences. Once your account is setup, they start suggesting names and you either flag them as “Like” or “Dislike”. As soon as you find a name you want, you “pick” the name and register it. The service costs $50.00 per domain name and you are charged only if you register a domain. My experience has been spotty. They certainly can come up with great names, but there is no consistency in the quality of names. But since you are not charged if you don’t register the name, it does not hurt to try. The good thing about using this service is that it makes you think hard about what your site should be about.
Web 2.0 Name Generator: This is a fun and easy website to use, especially if you just want a cool sounding name for your soon to be media empire. Simply go to the site and click on “Generate Name” and the site generates cool names.
PsychicWhois - covers a wide variety of TLDs (.com, .net, .org, .biz, .info, .us) and provides a lot of alternative domain name suggestions based on your previous searches and related terms.
Thesaurus.com: This is probably one of the more useful ways to pick a name. I usually start by jotting down a few key words, and start entering them into the thesaurus. The thesaurus kind of helps you to think about your name from different angles because of the various synonyms it suggests. Unlike Microsoft Word, thesaurus.com suggest synonyms that are similar in meaning but are divergent enough to make you think - its a great brainstorming tool.
Ajaxwhois.com: This site allows you to search for domain name availabilty. It is fast and very easy to use.
I like bustaname.com most. However, you can try all above tools to select your best choice.