It's only a matter of the problem. If it needs to be solved quickly and you can take slowness into account, you can go for anything that uses .NET or any other language that runs on a virtual machine (Java). If it needs to be extremely fast, you will want a language that gets directly and effectively compiled to assembly, i.e. C++/C/VB. In general I would say try to pick the one that is the newest and most reputable. If you want to take the long road you can also start with Assembler for example, then learn C and then learn C++, that will make sure you understand really _why_ the new language was developed and in how far it's useful, why there is a Standard C++ Library, a Standard Template Library, why there are new language features. Basically it all comes down to rapid development, you will always want to spend your time as effective as possible, so you try to let the computer organize most stuff you shouldn't have to worry about. Last but not least elegance is a very important key, which is directly related to the effectivity aswell. New language features offer new possibilities to solve problems in a short and clean matter. Don't go in ignorance mode and stick with what you know, you should always want to educate yourself further. Most stuff in the languages isn't there just for fun.
So what it comes down to is also of course the environment of the application, whether you want to create a Desktop Application or a Web Application or a Mobile Application.
In general I can say if you want to make nice desktop applications that work on every platform (called cross-platform-compability) the languages that are worth looking into nowadays are C#(.NET), Python(.NET), Ruby, C++.
For web applications the basic element you will need to know is HTML in pretty much every case (unless you want to only print out in text/plain-mode, hah), other stuff that you should know at least a bit is CSS and JavaScript (they're both extremely easy, but again don't oversimplify it, learn the tricks of the trade for each too). So the next step for web applications is the logic processing on the server. That's where languages like PHP, ASP(.NET), Ruby, Python and Perl kick in. They process the request you sent to the server and prepare a document to send back to the client. PHP is getting slightly deprecated nowadays (and alot critisized due to lack of new features and elegance in matter of syntax). Perl didn't get really great updates for quite some time either (although I read of something like Perl 6 being developed by a third party), can be interesting to look at. Ruby and Python are pretty much new-comers but have already reached alot of popularity with frameworks like Rails and Sinatra for Ruby and Django, web2py. While PHP has a huge amount of pretty good frameworks (CakePHP, CodeIgniter, Zend Framework), they are capped by the lack of language features in PHP unfortunately. PHP is probably still the best language for just kicking off applications in a matter of minutes due to ease of setting up a LAMP-server, but that has nothing to do with the language itself, rather with the popularity of it and thus the packages that were made for it.
For mobile phone applications you will most likely want to learn Java. Java is a language that runs on the JVM (Java Virtual Machine). It's getting hated alot due to it's whole ecosystem being shipped with it and thus it's often said that Java is slow. That's not quite right: it's mostly the GUIs that are slow because Java can't really take advantage of the GUI-features of the OS that it is running on, thus it has to construct the Interface itself, which slows it down. Java itself is not so slow and can be very fast (it is also said that the Java Virtual Machine optimizes and re-compiles the code in runtime to gain speed). Anyway, for mobile applications it's most likely the only choice you will have.
I hope I gave you a nice overview of the current situation in programming languages
