For a small business, having a great website can work wonders for your image. It can make you look bigger or more professional than you really are. For a small business there are 2 types of websites that you would consider setting up. The first is an online store to complement your sales force. The second type is an online community which interacts with your customers and gets them involved in your brand. Typically larger businesses utilize both on their web page.
Before starting any planning with your site you must decide on your domain name. If you are servicing a specific country you would be looking for a local domain such as in Australia you would be looking for .com.au. One mistake I made was that I named my domain after my business. Even though this is great and builds a brand, it offsets some of the other benefits. I would recommend using Google's Keyword Tool to find keywords with traffic that relate to you and get this in your domain.
My brand name was a generic name which did not represent what I did. So people were not actively seeking or searching that name. However a lot of people were searching for my key products. If I had my key products in my domain name it would have helped with my website getting more traffic in search engines. The reason being is I would have had a lot of links to my site with the anchor text relating to my products which would have boosted my rankings.
Once you have picked a name I would encourage you to get your site up and running as quickly as possible. The reason being is search engines take 6-9 months to fully index and trust your site. As your site gets older it will become more trust worthy in the eyes of the search engines and outrank a newer site because of this.
You must also keep freshening up your site with new pages and content. This will give customers (and search engines) a reason to keep coming back to your site. For organic rankings in search engines the main things you will need to be aware of are the structure of your site, keywords, content, inbound links and up time.
In regards to hosting your site it is recommended having it located on a fast server in the location you are serving. If you have faster load times for your customers it will reduce your bounce rate. It will also give boost your rankings in the eyes of search engines.
There is no magic formula to getting your site right the first time. However one thing you must ensure is that you have a system or structure which allows you to add or change content easily. Relying on other people or companies to do this in the long run will be more costly.