I have 10+ years of experience with Java (since version 1.1, really!) and 7 years of experience with .NET (C# mostly).
You have a very though decision to make but mostly you should try to break down into a couple of scenarios:
Desktop Application
If you are developing a desktop application you have to go with the major platform you will be working with. If it's a Microsoft platform use .NET, there are no better solution than the platform developed by the mother ship itself.
If it's a Linux or Multi-platform scenario consider Java or moving to a web based solution.
Web Based Application
This is a very hard decision to make because each one has their own strength and weakness.
Here's a few:
C#
Strength: Currently has more momentum building new features into the language and the platform/framework. Everything comes from one vendor and definitely this is an advantage. You can also put to use some very powerful components like DevExpress for example (Java doesn't get even close to have something like what the DX team has put together over the years and this represents a huge productivity boost).
Weakness: For enterprise application .NET is not as mature as Java. You don't have that many vendors building enterprise software in .NET as you have for Java.
Java
Strength: More mature (already explained) and has a big community with several great open source projects that can help. Several .NET so called open source projects are really just a copy-cat of projects from Java.
Weakness: Oracle owns Java (I know, not the JCP) and that is definitely a risk to be considered. Their intentions are not very clear and I personally don't like where the language is going right now (I know a lot of Java developers have similar concerns).
Server Side Application
It's basically the same arguments as the Web Based Applications but because you don't have to worry too much about UI Java gets stronger in this case. But again, if the platform is mostly Windows .NET might be a better choice.
Overall Considerations
Overall, in my opinion, .NET has the advantage mostly because of the tight integration of Visual Studio 2010 (hands down the best IDE out there), MS SQL, Entity Framework, IIS and so on. This all represent a huge productivity boost and I have tons of experience proving that. Also I work with mostly Java developers that turned to .NET and they share basically the same opinion.
I think it's also a good point that Microsoft is stronger than ever meaning .NET will be there for a while. So when looking 10-15 years ahead I feel more secure with .NET than Java.