Over a couple of years the company that I work at has through acquisition managed to move from having 3 main languages in use to 6 main langauges. This has made development and maintenance more difficult, especially as some of the acquired code was produced by less experienced developers.
I can see the need for having appropriate languages for their problems.
However there should not be two langauges in the same niche.
A company should either pick VB.Net or C#.
Personally I would lean towards C# but then I have had some bad experiences with the quality of VB.NET code that I have seen.
There are some arguments for allowing Java and C# within an organisation to allow the use of the associated technology stacks.
A company also needs a native language for the platforms that they are using (for those times when the frameworks don’t cut it) – for windows Delphi or C++ cover this field.
I would also recommend the use of a scripting language for support tool purposes.
Currently I use a mix of Tcl/Tk/Expect and Python.
Overall a company should use a limited set of languages to maximise the number of developers that can work on a given project. There should be one language in any given niche – but don’t limit youselves too much.