FIRST .. I will answer the question asked. What is needed to start a hosting service?
1- A server. You can buy your own, or rent a server from a hosting company. For 1 or two low volume sites it doesn't have to be big or even new. In theory, the desktop you bought last year is probably more than sufficient, particularly if you are going to use LAMP. Figure out backups on the server.
2- An internet connection for the server. This you have to buy from someone. You can have an internet line installed at your home/office, or you can purchase internet access and space for the server at a hosting company (called "colocation"). I recommend colocation. In all but the smallest metropolitan areas you can find a reasonably priced one within driving distance.
3- Technical knowledge to setup and manage the server. Since you are asking the question, one can presume that you do not have this. Either hire it, or contract with the hosting company for it.
SECOND .. I will give some advice. Do not start a hosting other people's sites unless you are prepared to lose a bunch of money. Hosting is VERY competitive, and is only profitable at a large scale. Google "web hosting" and look at the responses and the ads. Do you really want to compete with that? Heck, Google will host a 5 million page view/month site written in python for FREE.
Were I in your friend's shoes, I would have the client engage their own hosting service and manage it for them at my hourly rate. I personally like DreamHost. An alternative if he refuses to leave money on the table is to become a 1and1 affiliate and get a commission. I doubt 1and1 is the only company that does this either.