Feature toggling requires very strict discipline as broke/dark code is
making it to production.
I agree Electrawn, I've been using feature branching along 6 years, because in our case, we haven't the pre requirements.
Also is important to understand that the "Toogle Strategy" transfers the effort spent in Feature Branches Strategy( Merging ) to another moment.
http://martinfowler.com/bliki/FeatureToggle.html
It's very important to retire the toggles once the pending features have bedded down in production.
This involves removing the definitions on the configuration file and all the code that uses them.
Otherwise you will get a pile of toggles that nobody can remember how to use. In one memorable example I heard of,
it required making a special recompilation of the linux kernel to handle enough command line switches.
Note: Following the SCM principles if anybody open and edit a file it could be broken code.
So, In my perspective I don't believe in a "better choice in all the cases", because it depends on the culture of your team and if u have the test cover.
Well it is a very polemic question.
I still prefer Feature Branches Strategy in my case. Keeping the SCM best practices and planning the roadmap, the merge process tends to be a easy way.
During these year, i heard a lot of people complains about merge process, but in much cases the problem of merge is the same in my experience, "The communication fails" :)
Sorry for unprecise answer, but i think there are some humans aspects around this subject of better choice in SCM.