You should be able to use WOL (wake on LAN) with most PCs.
You can write your own code for it, but the easiest way will be to use Webcore. This is a very sophisticated rules engine written by the community and it has WOL capabilities for its rules.
So I would just start by talking to the people using web core. They have their own forum.
If you’d like to look at some of the other alternatives, you can use the quick browse lists in the community – created wiki, look in the project report section, and look on the “power” list. There should be several project reports about WOL, but most of them were written before webcore was available. So at this point, I think I would just start with webcore, but it’s up to you.