You will need some means of designing your websites. Many people use separate software for this such as Dreamweaver or Front page, but if you have a WYSIWYG HTML editor that handles graphics, then that is a good start for a beginner. A shopping cart system would be nice, as would a means of accepting credit card payments, but that can come later.
You must be able to handle php scripts, and also have a mysql capability. Not all web hosting systems allow that, but it helps if you want any interactivity that needs database support. Quite a few software packages need mysql to operate. Another great option to have is unlimited subdomains that allow you to operate different websites with different names from the same main domain. This is handy if you are going to diversify rather than just work from the same website.
It is unlikely that you will find all of these in one package, although there a few out there if you look hard enough. You can pay an average of around $25 monthly for a really good comprehensive web hosting system, or below $5 for something pretty basic, but good enough for a beginner.
Once you have decided on a host, you will need a domain. The domain is basically your website, and the one you choose will depend on what domain names are available. There are a few companies online that offer domain names, and allow you to check the DNS system to find out if the domain name of your choice is available.