I use C++ for the desktop and PHP for the web.

It's too difficult to keep up with the various technologies that come in and out of favor (Win32, MFC, COM, .Net) so in my current project my app is separated into a core lib and a GUI.  The lib is written as much as possible in pure, unmanaged C++, even keeping Win32 calls to a minimum.  This increases portability and doesn't require many updates when the technology changes.

The GUI will have no restrictions and will use whatever whizbang, platform specific technology is available.