Note: I had to remove the "http://" at the begining of some of my links because ServerFault requires that I have "at least 10 reputation to post more than 2 links". At the time of posting I currently have 1, but my answer references more than 2 links :(
I managed to get wake on LAN working with my XenServer 6.5 host. From what I understand, both the hardware (BIOS and NIC/firmware) and software (Operating System/NIC driver) must support wake on LAN functionality.
The hard bit seems to be on the software side of things because its easier to find out if hardware supports wake on LAN as opposed to, say, the NIC's driver for your chosen operating system. When the machine shuts down, the operating system/NIC driver must place the NIC into standby mode so that it can monitor the network for wake on LAN packets and boot the system if it detects one. If the NIC's driver doesn't support this then wake on LAN will not work, as far as I can tell.
The Ubuntu wiki covers some of this, including the Linux applications available that can send wake on LAN packets to hosts (help.ubuntu.com/community/WakeOnLan).
The first step should include checking that the hardware you intend to purchase supports wake on LAN functions. I sort of skipped this step because at the time I didn't require wake on LAN functions, but you can do this by examining the hardware's manual/specification sheet and searching for information/feedback from other users, particularly about the driver support for your chosen operating system.
Anyways, here's what I did to get my system to boot via wake on LAN:
Configured my XenServer host's BIOS to enable wake on LAN functions, e.g. for my Asus AM1M-A motherbord (BIOS v1001), I enabled the "Power On By PME" option in the Advanced menu --> APM (when in the advanced mode). While not technically required, I also enabled the "WOL (include AC Power Loss)" which allows for wake on LAN functions if a power failure occurs.
Downloaded and installed XenServer 6.5 (xenserver.org/open-source-virtualization-download.html) on my XenServer host and configured a static IP address via local access. Then I downloaded and installed XenCenter 6.5 on a Windows machine and remotely connected to my XenServer host. If you're on a Linux or Mac machine, then OpenXenManager might work (github.com/OpenXenManager/openxenmanager).
I'm not sure if this step is required. In XenCenter, I enabled "Host Power On" and selected the wake on LAN option as described here (https://support.citrix.com/proddocs/topic/xencenter-65/xs-xc-host-power-on-enable.html). However, I couldn't find "Power On" option in XenCenter that the documentation mentioned. Additionally my XenServer didn't power up when I sent a wake on LAN packet to it.
Via the local console (remote console in XenCenter will probably work too) on my XenServer host, I edited the "/etc/rc.d/rc.local" file and added line "/usr/sbin/ethtool -s eth0 wol g" to the bottom, so that upon boot the "ethtool" command runs to enable the NIC's wake on LAN functions. This is described in the "Configure the operating system" section here (https://xen-orchestra.com/blog/how-to-use-wake-on-lan-on-xenserver-6-2/).
I shut down my XenServer host via XenCenter. Then I sent a wake on LAN packet from another machine on the network to my XenServer host and it powered up! I used an application called PowerOff (users.telenet.be/jbosman/applications.html) to send the wake on LAN packet from a Windows machine. If you're on a Linux machine, see the Ubuntu wiki page linked near the begining of this post for similar applications. If you're on a Mac, this application might work (readpixel.com/wakeonlan/).