Basically, you would need the following
1) Domain name - about £3/y for a .com from Yahoo
2) Hosting - dependent on size of project, and something not worth going cheap on, as you always want your website to be up
3) Website design - making it look attractive to customers, easy to use, professional and so forth
4) Web developer to make the system work how you want, and allow you to have the control that you want over running the website
5) Payment provider - someone like Fasthosts, SecPay, Protx, WorldPay, PayPal in order to process your payments. They will take a cut of your turnover, ranging from as little as 1% (dependent on turnover) to 5%
6) SEO in order for users to find you, and make you able to compete in a highly competitive market. With all of the above, you're not much good unless you can't be found. Admittedly, there are other methods, and AdWords is a very effective one. If you're an online business, it doesn't hurt to be found via online search engines
7) Copywriter. Make the website appealing, selling your services, benefits and unique selling points in a clear manner. Not as easy to do as it sounds.
If you want some free advice to be pointed in the right direction, feel free to give me a call. Contact details available via the website (see signature).