I've just read an article on Hans-Eric Grönlund's blog, which discusses how close Java and C# are as languages. He concludes that "C#.NET is the best platform for Windows based systems since it was in fact designed for it. Java on the other hand is the only option for systems that are targeting other operating systems."
I would agree that Java is probably the only realistic option for systems targeting non-Windows environments. However, I would be reluctant to assert that C# was the best language for Windows development, although I would certainly agree that .NET is now the best platform for it.