Server-grade computers by most major manufacturers have provided these types of management capabilities for many years. Watchdog timers in the BIOS, COM-based Telnet console redirect, IP based COM, remote KVM, etc.
For a desktop-grade computer you have a few options:
1) Replace your system with one that has these types of management features (out-of-band management).
Intel offers their AMT (Advanced Management Technologies) on the desktop as well, which when adhering to the certain requirement is branded as vPro. (Basically a vPro-compatible board and CPU).
AMD has DASH; with similar requirements I'm sure. I've never used it, and haven't seen any 3rd party support for it.
I prefer Intel's AMT personally. All versions (that are 'vPro') allow shutdown, power-on, reset (hard), as well as a textual BIOS and boot view. The newest versions include a VNC-based "KVM" that allows you interact with the boot process as well as the OS, so it can be used to diagnose boot problems (BIOS, POST, Bluescreens, etc.) as well as end-user and OS support.
2) Get a remote-controlled power strip:
As echoback mentioned, there's products by DLI (Digital Loggers Inc.):
I looked into this, and it was too expensive for small-time use. Perhaps the price has come down though. It was feature rich, but I've never actually used it.
Another option is Technology On Demand's recent iRemoteReset product:
It is aimed mainly for auto-rebooting a router/modem combo (we use them mainly for that), but it shouldn't have a problem dealing with a desktop computer as a load. You can hit it by HTTP and reset the sockets manually (individually), as well as have it auto-reset due to lack of Internet connectivity, schedules and such.
3) Build an Interent-enabled robotic arm.