You will need a dedicated IP assigned to you by your ISP. In my case, I can pay $5.00 a month with my DSL company or get a dedicated IP from my Cable company for $20.00, but I get extra upload bandwidth with that package.
Once you have the dedicated IP, you have to set your router or computer up to use it correctly. Your ISP can provide you instructions on what settings you will need to change. The router manufacturer will provide the instructions on how to access your router settings page and configure them. Or your ISP can walk you through setting them up on your PC, but I STRONGLY encourage you to have a router with a few good secure hardware firewalls active.
Note that you need broadband to do this.
Note that visitors will eat your own internet browsing bandwidth.
Note that your DSL or Cable ISP provider may see your operation as a business unless you are operating a gameserver (and not all the time 24 hours per day).
Note that if you are planning a web hosting company you will not be offering much of a service. Consumer broadband is reletively slow and you are lacking all sorts of monitoring equipment and load balancers.
It *IS* Perfect for a private home site, however!
For this part, there ay be other ways, but I would Install Apache HTTP Server and set it up using the IP your computer is assigned by your router as a Name Server. There are some great PHP/MySQL/Apache installers. Or dedicate an old PC running Linux exclusively.
Anyway, you will have to find the IP that your router assigns your computer each time and then you go to your Registrar...
You will have to go to the domain name you want to use as the name server (must be set up and active in Apache as such).
In any DN Registrar offering Total DNS control, you can create a Name Server for that Domain by entering the IP #. You will then add the prefixes that configured for its DNS Zone in your apache hhtpserver... probably something like NS1. and NS2.
So Example.com would wind-up with NS1.EXAMPLE.COM and NS2.EXAMPLE.COM
You are creating a set of Name Servers, so not only does the Internet know where to access these name servers (your IP address), but your web server (apache httpserver or whatever you use) has to be configured with this information correctly.
If it is, you should be able to find Example.com and see the web pages on your HD.
This complicated is the reason even personal pages are on a hosted server in a NOC.
You also open yourself up to possible sophisticated hacking. So, be warned.
But in a VERY simplified explanation, that's how to do it.
Good Luck!

-Doug