Step 1 - Keyword Research
Even before you choose your domain name, you should put a little time into some keyword research. Research all the possible keywords that will fit your industry and the website you plan on building. Having a clear idea of what your end targets are will make the rest of your job much easier and help things to just fall into place. Take a look at Keyword Research for SEO , written earlier this summer, for more help on this.
Step 2 - Domain Selection
If you already have an established brick and mortar business and the website will be an extension of that business, using your company name as the domain name is in most cases the best idea. If your company name is either irrelevant, or simply unavailable, you may want to consider a domain that has your target phrase listed as part of the domain.
A great example of this is if your site is focused geographically. Using the location as part of the domain when possible will give you a little extra juice with the search engines and help draw people to your site as they instantly can see the relevance in the domain.
Let's say that you are building a website focused on your home town, "Somewhere USA". A domain you may consider could be "Somewhere.com"; however, this would probably be already taken. Other options such as "SomewhereInfo.com" or "SomewhereGuide.com" may be good alternatives. The same goes for retail stores. "SomewhereCameras".com or "SomewhereBakery".com would also be good choices.
Avoid excessive use of hyphens; sometimes it is appropriate to use one, but if you can help it, avoid more than that as it can appear messy and even spammy in some cases.
Step 3 - System Back End
If you plan on having a large scale website that will grow and change constantly then you may want to consider a content management system (CMS) such as Joomla. If you decide to go this route, you want to ensure that whichever CMS you choose is search engine friendly and offers items such as unique title tags, custom URL's, and full control over content, heading tags, image alt tags, etc.
Starting a website using a non-friendly CMS is like buying a car without an engine. Sure it may look great, but it won't get you anywhere.