I am learning Italian in preparation for a trip this June. I have a bit of an advantage since my father is Italian and honestly, speaking to him in Italian for 1/2 an hour everyday has progressed me farther than anything. Without someone to speak to it's very difficult to understand the little "in-between" words and rules that actually make expressing yourself possible. I would say it's possible to understand a language just from Rosetta Stone or something similar since most of the time if you recognize the noun and verb, context will help you put together the rest. I don't think it's possible to speak fluently without carrying on conversations semi-regularly.
I supplement my speaking sessions with some 1st and 2nd Grade Grammar books written for Italian students. It's great for building vocabulary. I also use Duo Lingo to practice with some of my facebook friends. I have also heard speaking in front of a mirror helps. So yes, immersion is key.