I'm in a somewhat similar situation, except I have decent Java skills. I made the decision to go for the MCSD though. Why? Well, the main reason is that I now have almost one year of professional experience in C#, ASP.NET, Visual Studio .NET, etc. I work in a Microsoft shop and I didn't think it would make much sense for me to go back to Java and lose my resume experience. I used Java extensively while in school (graduated August '04 B.S. Comp Sci), and seriously considered taking the Java route.
What you need to do is consider what type of programming you like to do. If you are into game developemnet go with C++. For web site development, I would go with Java/Perl. For windows applications I would go with C# or maybe even C++. Also, consider what platform you prefer (Windows/Linux/Unix) and that should help your decision.
I write both stand alone windows applications as well as ASP.NET web apps. C# was the obvious choice for me. One big thing to remember though is that you shouldn't just focus on the language itself. You need to master all of the technologies involved that work in conjunction with that language (i.e. web servers like Apache (w/ Tomcat) for Java web, IIS for MS web apps, software engineering best practices, UML, etc.)
p.s. You might run into alot of MS bashing in online forums when you ask this type of question (I did). Don't let zealots make decisions for you. Base your decision on what you like to do, and then maximize your capabilities with certs and degrees. Java isn't going anywhere any time soon and neither is Microsoft, so I wouldn't worry too much about short to medium term job stability.