Who can learn what
Most people can learn most languages if they work with a sensible method for a reasonable period regularly. Although it is true that some people are really bad at learning languages, there are very few of these. Rather, there are many people who were discouraged by bad experiences in school and who believe that if they dont speak french or german with any fluency after having spent 10 years in school studying it, this is because they are not gifted. It is my strong opinion that most people can learn foreign languages if they do it the right way. Actually, everybody, gifted or not, with a good or bad memory, learns his mother tongue effortlessly. Of course adult learn differently (and a lot more quickly) than children, but the point is that it does not take special skills to be an efficient language learner, just an efficient method.
Time needed and difficulty
There are certainly difficult languages and easy languages. But I have never heard of a language which was impossible to learn. The difference is the time it takes and the dedication you need to "finish" the language. The easiest languages are those closest to your mother tongue or to another language you already speak. You can look at my language families for the learner graphs as a quick guide to the closest languages to yours, or visit the choosing your language section. Learning a language with more than 80% of "common" words with your mother tongue can be done in three months part time if you're efficient, 6 months as a maximum. Other, more remote language or with more inner complexity can take you 2 to 3 years to reach a reasonable fluency. Anyway, one thing is certain : people learning on their own will learn much more quickly than people taking classes or attending school.
What you can achieve
Most people can speak a language like a native if they live in a country where they have to speak it all the time, especially when they are young. For all the others, learning to speak a language without accent is very difficult, something very few achieve. But nonetheless it is possible to learn to speak a language with fluency, to be able to express your thoughts with finesse and understand all the intricacies in the speech of natives without having to spend half your life among them. The important is to set useful and realistic goals (the first step is to understand and be understood) and then measure yourself against them to know where you stand. The difference between the mediocre and the oustanding language learner is not so much in the time you need rather in where you decide to stop. You should realize that you will never stop learning a particular language and that there will nearly always be room for improvement in your skills. Decide to improve your language skills everytime you can and never be satisfied with approximate but sufficient skills ! The idea is not to work constantly (you have better things to do) in order to pass, one day, for a native. Rather, it is an open attitude toward learning, a realization that even if you speak really well, you could improve it, learn new words or new expressions or perfect your pronunciation. Aim for excellence, and you'll get it.
Most people can learn languages if they study the right way
Having been bad at languages in school means nothing (I was bad too)
You should never be satisfied with your foreign language skills and constantly try to improve them