Ping only gets an ICMP echo response from the network interface... it doesn't prove the PC is actually up and running (for instance... I've seen hung systems, both PC and not PC, where the system kept responding to ping even though it was blue screened, hung 'dead in the water' or rebooting.
You only see the response if every network component between you and the PC allows your ICMP echo request to get to the compuetr and the ICMP echo response to get back to you. Any firewall in the way can be set to block ICMP traffic... or any type of ICMP traffic... in which case you'll never get a response.
If you get 'destination host unreachable' it means you've specified a host that you don't have any way to reach. For instance, you've not got a network connection. For another instance, your ISP can't find a route to the target because you specified a wrong IP address. For instance your ISP can't find a route to the target because something en-route is broken and there is no way round the blockage. Final for instance, you've specified an IP address that is not allowed to be routed (one of the private non-routable subnets like 192.168.100.000).
Any other ways to check if a PC is online? It depends what the PC is running... and where it is... and what lies between you and it. Firewalls can be set to block or permit specific protocols, so possibly anything you try will fail to get through. You can try telnet... which will be refused by a 'normal' PC running windows but refusal tells you it's there. Same for FTP. You could try SNMP. You could try telnet to other specific ports.
Or you could call someone up at the site with the PC and ask them to check.
All you can say for sure is... if you get a response from the PC then it's active on the net. If you don;t get a response it may be because it's off line or it may be because there is a block on the way there.