I believe that learning language through immersion is the best way and most effective way. This is just my humble opinion. I grew up in Mexico, and I lived in Mexico until I was 14-years-old. Throughout my life there I often took English classes. My mom paid private tutors and then in Secundaria that was part of my regular education. Yet, I was terrible at it. I didn't even know the cool new NKOTB songs. I mean I liked them, but I could not sing them. I remember my friend Myra Luna, you can see her blog here: http://www.myraluna.blogspot.com/ would sing to a bunch of songs in English, she knew every word. I won't mention here who she was listening to :D I would stare and wonder why I couldn't learn English, and why didn't I know the words to Ice Ice Baby!
Well Myra learned English while in school, or maybe because her mom was an English teacher she could pick it up faster. Whatever the reason (and maybe she'll tell us, wink wink) I was not picking it up. In fact, I started failing my English class. This was a year before I was to travel to the United States that I started doing terrible in class. Crisis averted, I passed and I moved to the United States. I started going to high school and was in bilingual classes. Except my classes we not bilingual; they were in Spanish only. I demanded that I be switched to English classes. For some reason my counselor listened to me, and with the support of my amazing ESL teacher I was fully immersed in English classes. A lot of people were surprised that I was speaking in English by my sophomore year and giving my English teacher hell. Honestly, I just think that being in the culture of the United States, listening to all my classmates speak English, being involved in gymnastics and soccer, and doing homework ALL in English really helped me. Immersion really helped me. It doesn't mean that there aren't other ways. Not everyone can pick up and move to France to learn French (oh but I so want to), but there are other ways where immersion works.
Our household currently consists of: mom, dad, grandma, Albert (cat) and Nesta. Everyone here speaks to Nesta in the first language that they learned (mother tongue, native tongue, etc). So, I speak in Spanish to him, Dad speaks in English, and grandma speaks in Spanish to him. This works for us because the majority of the time he hears Spanish spoken and is starting to understand basic commands. He also understands English and the commands spoken by his dad or any family member who speaks English. Again, this is what works for us. It doesn't mean that this is what everyone should do.
A friend of mine from high school is also raising her children bilingual. However, her and her family do it a bit differently. Her first language is English, but she speaks Spanish fluently. Therefore, she speaks in Spanish to her children. Her husband also speaks in Spanish to their children. She mentioned to me that because she home schools her children she has to do some instruction in English which is required by the state of Illinois. She said that her and her husband speak in Spanish to the children 75-80% of the time. Of course, they try to do 100% whenever possible! You can see her blog here http://www.quetzalbilingualacademy.blogspot.com
Another lady who I once babysat for also learned English first, but then was moved to a Spanish speaking country at a young age at which point she was immersed in Spanish and is now fluent in Spanish. Her husband speaks English, and she decided to divide her time speaking in English and Spanish to her child.
A bilingual family :)
Of course, if we all spoke Spanish in our household then we would all speak in Spanish to Nesta. Why? because everyone around us is constantly speaking English and I am not afraid that he will grow up and not know any English. Our friends are English speaking, most of our families speak English and in general English is all around us. From day 1 Nesta heard English and Spanish and I hope that never stops.