The computer in which the website is to be hosted on needs to be stable and have enough RAM to adequately cope with demands. I have 512MB in my server which is more than enough for the software I use - WAMP - Apache, PHP & SQLite built installable from one single EXE. I have used IB Server in the past instead of WAMP and had good results - the main reason I changed to WAMP was because of the version of PHP included was newer and I required it.
The main factor which limits how fast users can access the self hosted website are the upload speed of the broadband connection, on ADSL typically 448Kbps which is not a lot really when you have a number of concurrent users. With cable. however, the upload speed is greater, sometimes upto 1.5Mbps which is a lot better. The upload speed is the max speed the users accessing the website will be able to download web pages from your server at. If you have 448Kbps upload, 45KB/s is possible. Sites will slow down greatly if there is heavy traffic accessing at one time, but usually will remain browsable.
1) Install WAMP (Web server application) or any other web server software of your choice, use IIS if need be.
2) If you are using Windows as the server's OS add TCP port 80 to the firewall exceptions list or any 3rd party firewall do the same as this needs to be allowed in order for the outside world to connect to port 80 of your server.
3) If you are using a router, login to its web interface and port forward port 80 TCP to the server's IP address, both inbound and outbound rules will need to be created.
4) Once the above is done the website should be accessible externally by using your WAN IP address, typically this can be found by typing 'what is my IP' into google. Get someone to test it from outside your network. Some routers will have problems accessing the web server internally using the WAN IP due to NAT rules. Access it by typing 'http://IPADDRESS' into the address bar.
5) If you get the test page for the web hosting software you are running you are doing well, all is functioning correctly, go to next step, if you get a 404 check the port forwarding and firewall rules are setup to allow TCP port 80. If they are and it still doesn't work check it works locally, simply by typing http://localhost into the address bar.
6) It may be annoying having to access your website via the WAN IP address of your broadband connection so to make things easier you may want to use a domain name to point to your website. You can get free domain names from DYNDNS and there is an updater program which (if you have a dynamic IP, one that isn't static) will update your IP to the domain every time it changes.
7) Install dyndns updater once and create an account with dyndns and think up a domain name - the ones on dyndns can be free but have an extention after what you write in so something like yourwebsite.dnsalias.org will be what you can get.
8) You can link to your dyndns domain name by getting a paid domain which is much shorter and easier to remember, these are cheap and can be found easily. I pay £6.30 for two years on a .co.uk domain from register1.net. If you decide to do this, keep all the options in the web hosting provider control panel as default - all you need to do is setup a web forward to your dyndns domain name so when your registered domain name is hit into a browser it will re-direct to your dyndns domain name. Dyndns will automatically update your IP should it change and will always point your IP at the dyndns name you have.
I hope this information has helped, if you have any questions or problems with it please contact me using the form or visit the forums for help.