If someone hosts a website it just means they (or their storage hardware) stores the files that are accessed when those who visit your site request them. If yahoo hosts your website, you give them your files and how you want them to be organized - i.e. your website - and when people punch in your url they are accessing stored information on yahoo's servers.
Owning a domain simply means you have the right to use that name as your website.. it has nothing to do with hosting or file storage. If you want a specific domain name and it's already owned by someone then you can buy or rent it from them if they're willing. Sometimes the company that rents/sells you a domain name will also be able to host your site.. but they really have nothing to do with each other.
If you are going host your own website, you would want a pc that is connected to the internet and available to be accessed at any time - otherwise, those who want to go to your site will be unable to if that pc is down.
With all of the competition, it's so much easier to pay a few bucks a month for someone else to host your site.