This has been debated for nearly 7 years now and the fact of the matter
(without any attempts to poke fun at one programming group or another) is
that for all intents and purposes, there is no real difference in what you
can accomplish or how well the code will perform regardless of what .NET
language you use.
Ultimately, it is the .NET Framework Common Language Runtime that really
does the work and VB .NET or C# are just ways for you to "talk" to that
runtime. With spoken languages, there are some that are more verbose than
others and there are some languages that don't have a translation for a word
in another language. So it is between C# and VB .NET.
There are some tasks that C# can do rather easily that VB .NET doesn't and
vice versa.
C# supports unsafe code - VB .NET doesn't.
VB .NET supports XML literals - C# doesn't.
VB .NET's "Handles" keyword makes event handling very simple - C# doesn't
have such a keyword.
etc., etc., etc.
At the end of the day your VB .NET code and your C# code must be
translatable into Microsoft's Intermediate Language (MSIL) and that is what
the CLR processes.
I have found though, that many (not all) C# developers (many of which are
former Java and C developers who have a chip on their shoulders) will try to
tell you that C# is better because of how it looks and it's simplicity
(according to them), but as I say, that is just a subjective preference.
Functionally and performance-wise they are just about equal.
-Scott