xrdp is a RDP server for *nix.
Doesn't seem useful at first glance, until you're stuck on a Windows machine where PuTTY/VNC is inconvenient (public PC) or impossible (WinRT). However, an RDP client is available on nearly every Windows machine. xrdp works perfectly well if you're stuck in a similar situation.
Docs are unfortunately sparse; this is what I've done to make it work. I'm using Arch, so YMMV.
Besides the build steps in the README, to use it you'll need a working X11 setup and either TigerVNC installed (your distro's package will do), or build the patched X11 in the repo for X11rdp.
You'll likely want to edit the /etc/xrdp/xrdp.ini and remove all the sessions besides either
sesman-Xvnc depending on which you're using to back your RDP sessions. It will handle starting an X session for you, unless you use the VNC pass-through config.
Be warned, if you disconnect the RDP session without stopping your WM, it will hold your session open and reconnect you, but only if you reconnect from a client with the same resolution. Otherwise, it will start a new session.
/etc/xrdp/startwm.sh has a SESSIONS line at the top for selecting a WM when you connect; if the first doesn't execute, it tries the next and so on.