Well many hosting services you have to get a domain name first. To do that goto
http://www.internic.com and goto The Accredited Registrar Directory to find a place that will sell you a domain. I found that
http://www.1stdomain.net/ has reasonable prices and good services, but I only looked at a couple registrars.
Then, once you buy a domain, you have to get hosting. There are many free places for this, but they usually don't give you many useful tools. So, after longs hours of searching I found this incredible place,
http://www.9kd.net/ep.shtml, where you can get hundreds of great options (like php,perl,a mysql server, unlimited sub-domains,unlimited email addresses, unlimitied storage) for only $15/year. It might even be too good to be true, I dont know I haven't tried it yet.
Also, if you have your own hosting and want a domain name, you need to find out the Primary Nameserver, Primary Nameserver IP, Secondary Nameserver, and Secondary Nameserver IP of the host, which the domain name service requires. So for example the ones for 9kd.net can be found at the bottom of their page that describes what you get for $15/year page.