My experience with languages is this: what you intend to do is far more important than the features of the language. If you plan on writing something that makes heavy use of C++ libraries, write it in C++. If there are better libraries for .NET or Java, use those languages.
Managed vs unmanaged factors in a little, but even for bleeding-edge games your bottleneck isn't going to be in function calls, it'll be in math and GPU calculations, both of which are unaffected by JIT vs Native compilation. I'd always go with the language that, in order of priority, a) has the best libraries that mean I have to reinvent less stuff, and b) is easiest to work in.
If I'm writing code for a microcontroller, or a driver, or a low-level API, I'll choose C (and get as close to ANSI as I can.) No real need for extra libraries, not a lot of architecture, and having the responsibility of managing memory is likely necessary.
If I'm writing a GUI application, I'll pick something with good GUI support - probably C# with Winforms or WPF. GUIs also tend to use COM a lot, and .NET handles COM a lot nicer than C++ (with or without ATL). Plus if you target 2.0, Mono still lets you be all crossplatformy.
If I'm writing a scientific application, or something for school involving lots of linear algebra, simulating differential equations, etc, I'll probably use Python. They've got so many libraries dedicated to math and visualization, it'll be a much nicer environment to work in. If I really wind up needing something faster, I'll write a component in C. Or find a Python library that already does that.
If I'm writing a game, I'll probably choose between C++ and C#. It used to be that all the good libraries were in C++ (and to an extent this is still true), though I've seen lately some wrappers for OpenGL, OGRE, physics libraries... even some direct ports of the aforementioned (writing all your code in C# tends to be faster than calling into native code frequently). So I'll probably start a little project to experiment with these C# libraries soon.