They're both quite useful and both rather similar. C# has seen a rise in popularity lately whilst C++ remains an extremely-popular language.
I'd go with C++, though, since C# most closely resembles Java. If you know Java, then you could learn C# by merely looking through the MSDN site to see what objects do what. C++ has a few bits and pieces that are worth exploring that you won't find elsewhere.
C# is a Microsoft language, and so if you were looking to be developing on the Xbox platform, XBL Indie for example, then C# would be your language. Most other consoles use C++ or Obj-C (handhelds use Obj-C). As for the PC, well avoid C# because it's bloated afaik. Aim for other languages, C++ would be your best bet out of the two - but generally speaking it's not the language, it's the game.
Personally I would like to state I've started to learn Unity3D C# (not the same to MS C#, and doesn't include .NET stuff) so uh, if you wanted to make web based (or desktop) cross compatible games using Unity3D then C# would be the way to go.
C# (.NET in general really) can be really nice for making a program look nice, but the things you learn in a managed language are not as useful as what you can learn from unmanaged languages like C++. Dynamic memory in C/C++ is not always straight forward, but learning how to operate that in a real-time program is invaluable information.
If you want to make programs with a nice GUI, VB.NET or C# is the way to go, just don't tell anyone you use those. If you want to write programs that work fast and efficiently, and learn MORE, pick up C++. Basically every lesson learned in C++ will help in other languages, but no everything learned in C# will help elsewhere.