I pick of the eggs as soon as they appear (small whitish/yellow clusters), they squash very easily, and if done every couple of days not caterpillars at all.
If you use a pesticide, you risk killing helpful bugs, such as bumblebees, hoverflys, ladybirds etc, so please dont :)
Caterpillars have a waxy protection which stops nearly everything you ca spray on them. I do as has been mentioned before and pick off caterpillars and eggs and this reduces damage to a bearable minimum.
I have had some good results with a spray of my own making - water, a little washing up liquid and a good squirt of garlic puree. It also killed the caterpillars if they got a chance to hatch.
An book of old garden tips suggests making a solution of sour milk and a little lemon juice (lemon juice in milk would probably sour it anyway!) and spoon it into the centre of each cabbage once a week.
So that will be my chosen method this year.... Ultimately, some kind of netting to keep the blighters off the brassicas in the first place is the best strategy.