Silly question, really.
"Best" is a very subjective term, so I know you'll get some impassioned responses. However, there isn't really such a thing as a best language. Some languages are better for some jobs than others. Once you learn a language or two, it's pretty easy to pick up more.
The language really isn't that important. There are core ideas in programming that can be learned in any language (or with no language at all, as my friend Colanth prefers) Learn these ideas first: variables, conditions, branching and loops, arrays, and functions. It doesn't matter what language you learn them in, because these ideas are universal to all procedural languages.
Java is currently taking over C++ as the most commonly taught language in CS departments as a first language, but Python is rapidly gaining hold as another popular alternative. Any of these is fine, because if you're serious, you won't stop at one language.
I don't really love C as a first language because it's a bit frustrating for folks who've never worked on the command line. C is so low-level (close to the processor) you'll have to program for a year or two before you can create anything that looks like the programs you've used (unless you're old enough to remember the command line)
C++ and Java are very good choices. They are substantial languages, and even if they don't stick around in prominence, they'll both teach you good ideas you can use in other languages. Java is a bit stricter than C++ and tends to teach you slightly better habits, but this also makes Java a bit more annoying for beginners . (You have to do things the Java way or it simply won't work.)
I like C#, but I don't use it much.(I mainly run Linux, so Windows-only languages aren't very interesting to me. I did write a book about C# a long time ago, though, so I guess I know something about it.) If you want to use one of the .NET languages, I'd go for C# rather than VB.NET. Technically the languages are very similar, but VB tends to teach some bad habits. C# is a more forward-thinking language.
My personal favorite language to teach beginners with is Python. It's reasonably straightforward, and you can get a lot of success more quickly than with a lot of other languages. Python is free and available on nearly any platform. Python can be used for command line programming, GUIs, gaming, and web programming, so it's a pretty good introduction to lots of different kinds of programming.
Hope this helps, and have a great new year...