The first thing you need to decide is whether you want to reserve your own domain, or settle for a subdomain. In brief, a full domain is its own separate entity (such as bellaonline.com) while a subdomain is a portion of a full domain (such as html.bellaonline.com).
A subdomain will do fine for a personal website or the tiniest of business sites. For a serious ecommerce website, you will want to go ahead and reserve your own domain name. A third option is a directory URL for your site (which would look something like www.bellaonline.com/html). This should be a last resort only, as it looks even less professional than a subdomain and is less distinct from the hosting company's domain name.
If you decide that a subdomain is the way to go then you will be able to host your site with one of the free web hosting companies. Typically a free hosting company will offer you a subdomain and decent features, such as contact forms for your site, but tech support is usually poor to nil; if you have trouble setting up your website or using the hosting company's tools, you'll be on your own. I suggest you use the selection tool located at http://www.free-webhosts.com/power-search.php to find a free web host that offers the features you really want.
If your website is fairly simple, all you really need is a reasonable amount of storage space (say 20 MB or more assuming you don't have a ton of images) and FTP access to make changes to the site. However, it's a good idea to look for features that you are likely to need in the future as well, so that you don't end up outgrowing your web host in a year or two. For example, if you'd like to eventually include interactive polls and quizzes for your visitors, you'll need a host that supports scripts – most likely ASP or PHP. If you'll be storing a lot of documents, shoot for a larger storage space. If you have any kind of online storefront you'll almost certainly need a database at some point, so pick a host with MySQL.
If you decide to get your own domain name, you will probably also need to go with a cheap (rather than free) web host. My personal website is hosted by BlueHost and I don't hesitate to recommend them; they have a very easy-to-manage interface and a solid feature set, so that if your site does grow over time you don't have to worry about moving it to a better hosting company later on. They also have a Site Builder wizard that lets you build a site using one of their templates, even if you are not a design expert. And they will pay for registering and renewing your domain name as part of your hosting package (which is definitely something you should insist on, whatever hosting company you choose). I've also heard good things about GoDaddy as a web host, although I've found their site tools to be a lot more confusing than BlueHost's.