Every project that I have worked on in the past 18 years has been completed using a single-language. The exception for this is web-based applications where you have a mix of languages in each tier:
Middle Tier: VB, Java, VB.net, or c#
Data Tier: SQL, Stored Procedures (PL/SQL, TSQL, Java SPs)
Would it NOT be more productive if you had a single language that was common amongst all of the tiers in an application? This would provide maximum coverage for all of the developers and would extend the knowledge base as new aspects of the application are added.
While I am not saying Java is the BEST tool for all problems, it is a good choice for solving problems on many different tiers of an application.
If it were YOUR money running an IT shop, wouldn't you want to leverage all of your developers on all of the different parts of an application?