Try the ECU relay first.
I had a similar problem and i tried everything, til i found this site and got the advice.
To check it - get the engine warm. Switch off and take out the relay, check manual for the right one, hold it to your cheek and if its warm then its o.k. If not get a new one, only about ?8 from dealer.
If this fails then it will be plugs/leads/cap&rotor next.