I agree that it depends on what you're doing. If you're wanting to build a Windows application, anything .NET is ideal in my view. If I was starting a Windows project I would choose C#. If I was wanting to build the same app on OS X I'd use Objective-C. If I was writing Unix utilities, C without a question. The reasons for these are that they're native to the system they're being used on. If you're learning programming for the first time, Java. Java offers the ability to have a powerful programming language (Runescape) with syntax that is easily portable to C.
For web programming I like PHP (I consider PHP a scripting language since it's not compiled, but it still is programming) but it has its own downfalls as well. One of these in my view is the strong link to C. This can be good and is where I feel the power of PHP lies. The main problem I have with PHP is that it's hard to write Object Oriented code that actually feels object oriented, to me at least. Another problem I have with PHP are some of the inconsistencies, take this example:
Code:
mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) // http://ca.php.net/strstr
string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] ) //http://ca.php.net/strstr
These are both String related functions, yet the parameter orders are different.
My favourite language is... C++
It allows for the old style C programming but also brings modern conveniences to the programmer. It also serves as a common base for C-derivative type languages which is nice. Added on to this, if you really want, C++ allows you to create objects and work with them. In my view it's the best of both worlds

Here's a list of languages that I consider myself fluent in:
- C
- C++
- Java
- PHP
- bash (script)
- Lisp
- Prolog
- AppleScript (script)