Others have covered a lot of the differences - as has been said several times, they're nearly equivalent languages. A few differences which haven't been covered as far as I've seen:
VB9 has:
- XML literals
- Mutable anonymous types (urgh)
- More LINQ support in the language (C# only covers a few operators)
- A whole bunch of extra bits in the language which get compiled down to calls to the Microsoft.VisualBasic assembly. (C# prefers to be a small language with the weight of the .NET framework behind it.)
- DateTime literals
C# 3 has:
- Better support for lambda expressions: IIRC, you can't write a lambda expression with a block body in VB.
- Iterator blocks.
- Syntax for extension methods (instead of decorating the method with an attribute)
I suspect there is more, but I thought I'd just throw those into the mix.