As i said earlier up, either a lazy starter or a knackered battery. If the engine doesn't spin over fast enough the sensor won't produce adequate signal voltage for the ecu, but when you tow-start it, it does because your not using the battery to start.
If i were you, first things first, battery test, if its fucked, buy a new one and try again, if its ok, try another starter.