This list is by no means exhaustive. Learning new languages almost always will make you a better programmer. The important thing to remember, however, is not to restrict yourself to languages that share too many concepts. If you know Java and C, learning C++ won’t stretch you.
It’s also worth remembering that you don’t have to use a language to benefit from knowing it. If you know assembly language for the processor on which you’re working, this knowledge will help you in writing high-level code, since you’ll be able to keep in mind what’s actually going on when you execute your code. Similarly, familiarity with a higher-level language will help you to write better-structured code in a lower-level language.
Eventually, someone might create a programming language that is the ideal choice for all uses. (Lisp programmers will argue that this has already happened.) Until then, however, the more languages you know, the easier it will be for you to select the correct tool for the job. More importantly, you’ll be better able to determine the suitability of the language you’re using.