The most common way to find out who is hosting a website is by doing a whois on the domain name and looking at the Domain Name System (DNS) which often leads to the hosting provider, but in occasions some webhost do not use an obvious NS name making it difficult to find out who the host is, it is also possible for those on a dedicated server to create their own custom DNS name throwing off the trail anyone investigating them, or to use a free DNS provider that helps hide the real hosting company.
HostLogr.com: This free service will show you a website data centre physical location, can be useful to troubleshoot ping rates and latency as well, it will also the website IP with a list of websites sharing the same IP, a common happening in shared hosting, but this does not mean that all those sites belong to the same owner, just that they are on the same server.
Who-Hosts.com: This service will name the webhosting company behind a website. If you are going to report abuse this is much more useful than finding out about the data centre since abuse reports should be send to the hosting company and not the data centre.
Whois.Domaintools.com: A very complete domain name information tool, with details about domain name registrar changes, IP history, whois history changes and DNS changes. This data will not tell you who is hosting a domain name but domain ownership and registration dates can help you work out what a website has been up to in the past. You will need the paid for version of Domaintools to get access to the most advanced features..
Ishostedby.com: A simple report tool showing a map with the exact geographical location of the server, the IP and the data centre where the server resides, a data centre is also the ISP for that server/website, if a hosting company ignores an abuse report it might be worthwhile try to send an abuse complaint to the data centre as a last resort.