as far as having a hosting service host it, you need to know how many people you are looking to host. Most hosting services either limit the amount of slots you can have (people on at once), the memory you utilize, or the bandwidth you use.
I did a quick google for "minecraft server hosting" and came up with several. One has the smallest available at 10$/mo. for a server that is recommended for 1-5 people at once. You can have more but it may bog down. Seems the main limitation is the memory.
I would definiitely ask if they charge extra for bandwidth overage, because that can always bite you (sort of like long distance bitd).
And yes, running your own on a PC you have lying around will hit your access, but really it is going to be mostly your upload. Your son will have super fast access (local network and all), and his friends will be a little slower. I would say either go with a 10$/mo one for a month and see how you like it, or set one up on a spare PC you have and let him try it out. He may get bored of his own server after a bit and just go back to playing on others.