You should learn... all of them ! Or rather meta-learn all languages. When you know two or three languages, you can quickly learn any new language which is similar to these ones. If you know enough languages, you "virtually" know them all, and, more importantly, you understand that which is part of the language, and that which pertains to the programming independently of the language. Ultimately, specific languages are irrelevant.
So you might want to learn Java, C, Scheme, OCaml, Assembly (two architectures at least), Forth and a bit of Prolog, not necessarily in that order. The second language will be the hardest, because you will have to both learn new concepts, and forget concepts which you learned with the first language but turned out to be wrong. Afterwards it is easy and only becomes easier.
Then, when dealing with a specific development task, use the most adapted language based on availability and support of compilers and libraries, knowledge of co-workers, policy constraints from management, and so on. Flexibility of mind is the key. Knowing many languages grants this flexibility.