1. What product or information they are looking for (this is your first list of keywords).
2. Reasons which make them look for the information (this is your second list of keywords). In many cases your visitors do not even know that they may need the information or product on your website. For instance, you sell antivirus software. Some people do not even think about viruses and damn manufacturer of their computer or new software. These people can use a keyword as "fix slow computer".
3. Sometimes it's getting hard to make up a lot of keywords, that's the time when Google Keyword Tool becomes very handy. If you already got some keywords, just put them in and this tool will provide you with other possible keywords for your site.
4. Go through your Google Analytics, if you have one installed on your website, look at the keywords which already bring some traffic and make the 4th list.
Now play with words in these 4 lists. Try to make your keywords more specific to your business.
The third step can help you to find less competitive keywords. For instance, instead of using "wedding ring" you can use something like "platinum wedding ring in Portland" or "platinum wedding ring Nina Ricci".
Combine your lists and check your search-engine positions for these keywords and keyword phrases. It's better to choose those terms that are already closer to the first page and which are more popular.