Depending on where you go and what privacy and security features you want, a domain name can cost anywhere from about $7.00US to $35.00US. The upper cost goes down when you order the name for longer periods of time.
I host DSiPaint.com and my other websites with RackSpace, using a virtual server instance in their cloud. In English, that means I am rending a fraction of a server that can be resized at any time, as I need it.
I used to have hosting at FastDomain, but DSiPaint quickly outgrew the shared hosting plan, causing them to cap bandwidth and hang all my websites. From what they told me, there were roughly 500 websites per server, and DSiPaint was taking about 40% of the entire server. They were not happy.
The RackSpace virtual server started out with just Ubuntu Linux installed. A had to set up PHP, MySQL, the Apache2 Web server, the email server, and other tools. It was definitely a learning process. What's nice about RackSpace is they set you free to do whatever you want, even reselling hosting. That is how I am able to offer the subdomain websites for DSiPaint, with extra databases, email accounts, and FTP for file uploads.
My current websites hosted in the virtual server are: