New languages come into existence for a number of reasons:
- as an exercise for the inventor;
- because of perceived shortcomings in existing solutions;
- to introduce new ideas that are awkward or impractical to transplant into existing languages.
There is no defined list of problems. Someone simply decides, usually based on their own experience, that nothing quite does all that he wants and then tries to create something that does. Sometimes it works, sometimes it doesn't. Sometimes it becomes popular, more often than not it doesn't.
Edit: It's important to remember that when it comes to "problems", it is often subjective. Many consider memory management a problem that prompted the rise of garbage collecting. Not everyone agrees.
Also, the features that come into languages and at least in part prompt new languages come into being aren't necessarily related to problems. They're more about what's possible and what's fashionable.
Closures, first-class functions and the like are currently fashionable, even though they've existed in Lisp for decades. That's why most modern languages either have them or are getting them.
What's possible is also important. Computer power is no so cheap that the overhead or things like garbage collection is considered to be so small that in most cases the productivity gains outweigh any implementation costs.
Lastly, no language is suited to all tasks. As what we want to do with programs changes, so do the languages. Now Web development is a huge force in programming. It wasn't 10-15 years ago. Useful features for Web development aren't necessarily the same as writing heavyweight desktop apps so languages evolve too.