Immersion in the language by living in the country where it is the native tongue is the best way to learn a language as an adult, also. For those who have the means and flexibility to live abroad for a period of time, it is a wonderful experience. Unfortunately, most people do not have the time, job flexibility, finances, or ability to take this step.
A language program which uses interactive software is another good way to learn a language. These programs are based on the immersion principle. Rather than using rote memorization and flashcards, the programs use native speakers in conjunction with images and printed words to help you learn to think in the new language.
While these are good programs, there is a disadvantage in not being able to have a dialogue with a live person.
Taking a class at a college, university, or adult education program gives you the advantage of learning from a real person, but many of these courses use the traditional approach of learning vocabulary lists, grammar rules, and flashcards. These can be effective, but often lead to the problem of translating what you hear or want to say in your head, rather than thinking in the language, which is the true measure of fluency.