One of my websites is inaccessible via certain ISPs. I ran a trace route and I can see where it stops. Looks like it's owned by the ISP. Is there anything I can do about this? Can the hosting provider do anything? Do I have to call the ISP and ask if they can/will do anything about it?
There is, unfortunately no easy answer to the problem, and the answer is very much "it depends" - basically it depends on your ISP, the provider thats blocking the traffic and the reason for the block.
A good first step is to communicate reasonable detailed information to both your ISP and your hosting provider - Your hosting provider is paying for a service (and you are paying them), so they have some leverage and probably SLA's and the like. Of-course, the more budget the host the less this helps you.
You do want to try and do "traceroutes" in both directions to see whats going on and provide them to the provider - this is the minimum information they need. Using MTR is generally a better solution as it shows packet loss as well.
That said, it may be easier just to migrate the site to a different ISP - or get another IP address from your current provider which is not blocked - beware of "bad neighbourhoods" though.
Another "work-arround" (which may defeat the purpose) might be to put in a reverse proxy at another site and then pointing the DNS to it and proxying to the real provider. Its probably overkill though, but could be useful if you need to move the site, or to circumvent certain reachability issues.