I talk a lot Dh is the strong silent type...
Luck mostly. I remember when the boys were 4 & 2 I was worried about them speaking so much German. They only spoke Eng to me & spoke 70% Ger / 30% Eng with each other - understandable when ds1 grew up thinking you "play with other children in German"; that's all he knew from playgroup, tumbletots, friends and then kindergarten.
I used to go to them sometimes and play with them because then they switched to Eng and I wanted them to keep it up. Didn't force it at all. When dd came along they were 5 & 3 and they spoke to her in English copying me I suppose. I'd ask them to pass the lego/teddy/carrot stick and they'd talk to her in English which then developed into them not bothering to switch to German to speak to each other when they spoke only Eng to me & dd.
Following?
Since then all 3 only speak Eng with each other, even sometimes when dh is there doing something with just the children, they'll speak to each other Eng but Ger to dh.
Outside the home & at home with friends they switch dep on what they're saying.
We used to get only German TV so I had videos of Cbeebies and 3 yrs ago got sat TV which accounts partly for dd's fluency I reckon. They all have booktapes, comics, books, videos, dvds in both languages but listen to the Eng almost exclusively. They almost never watch German TV as the BBC is so much better. Ditto the Cbeebies website.
We're not a huge telly family but I'm a news junkie so the BBC is on the radio (internet) or the TV (sat). I love Radio4. BBC7 has Cbeebies radio now. What are v good for their vocab, are story tapes/CDs. Dd listens for hours while playing in her room, Charlotte's Web is the current fave.
Dh & I only speak English and I do think that makes a difference. He's absolutely fluent but only speaks German to the children. Downside of all this is that their German is no way as good as their English and tho' the boys' teachers tell me their vocab is not signif smaller than monolingual children, it's still makes their lang skills lower than they should be. Bugs me.