I have tried to use WakeOnLan to turn on a pc over a local network and worked perfectly. I imagine the it must work the same over the internet is it has a static IP. The problem is that the PC i'm trying to turn on has dynamic IP. My question is: Is it possible to turn a computer on if it has dynamic IP? I really want to be able to turn my PC on and not make a phone call to be turned on by someone else.
You could use a dynamic dns service http://dyn.com to get to your home network. Then you just need to forward whatever port you're using on your home router for WOL to go to the computer that needs to wake up.
disregard the "home router" comment if you aren't trying to do this through a home router :) I just assumed you were.