Tenho mais de 10 anos de experiência com Java (desde a versão 1.1, realmente!) E 7 anos de experiência com .NET (principalmente C #).
Você ainda tem uma decisão a tomar, mas principalmente deve tentar dividir-se em alguns cenários:
Aplicativo de desktop
Se você estiver desenvolvendo um aplicativo de desktop, precisará usar a plataforma principal com a qual trabalhará. Se é uma plataforma da Microsoft que usa o .NET, não há solução melhor do que a plataforma desenvolvida pela própria mãe. Se for um cenário Linux ou de várias plataformas, considere Java ou mude para uma solução baseada na Web.
Aplicativo baseado na Web
Esta é uma decisão muito difícil de tomar, porque cada um tem sua própria força e fraqueza. Aqui estão alguns:
C #
Força: Atualmente, há mais impulso para criar novos recursos no idioma e na plataforma / estrutura. Tudo vem de um fornecedor e, definitivamente, isso é uma vantagem. Você também pode usar alguns componentes muito poderosos, como o DevExpress (por exemplo, o Java não chega nem perto de ter algo parecido com o que a equipe do DX montou ao longo dos anos e isso representa um enorme aumento de produtividade).
Fraqueza: para aplicativos corporativos, o .NET não é tão maduro quanto o Java. Você não tem tantos fornecedores criando software corporativo no .NET quanto o Java.
Java
Força: Mais madura (já explicada) e tem uma grande comunidade com vários ótimos projetos de código aberto que podem ajudar. Vários projetos de código-fonte aberto do .NET são realmente apenas uma cópia dos projetos do Java.
Fraqueza: a Oracle possui Java (eu sei, não o JCP) e esse é definitivamente um risco a ser considerado. Suas intenções não são muito claras e, pessoalmente, não gosto de onde a linguagem está indo agora (sei que muitos desenvolvedores de Java têm preocupações semelhantes).
Aplicativo do lado do servidor
São basicamente os mesmos argumentos que os aplicativos baseados na Web, mas como você não precisa se preocupar muito com a interface do usuário, o Java fica mais forte nesse caso. Mas, novamente, se a plataforma é principalmente o Windows .NET, pode ser uma escolha melhor.
Considerações gerais
No geral, na minha opinião, o .NET tem a vantagem principalmente por causa da forte integração do Visual Studio 2010 (sem dúvida o melhor IDE existente), MS SQL, Entity Framework, IIS e assim por diante. Tudo isso representa um enorme aumento de produtividade e tenho muita experiência comprovando isso. Também trabalho principalmente com desenvolvedores Java que se voltaram para o .NET e compartilham basicamente a mesma opinião.
Eu acho que também é um bom argumento que a Microsoft esteja mais forte do que nunca, o que significa que o .NET estará lá por um tempo. Portanto, ao olhar 10 a 15 anos à frente, me sinto mais seguro com o .NET do que com o Java.