This should do what you want (or close to it) if you add the missing code to increment 'buttonPushCounter' when the button is pushed.
#include <Servo.h>
Servo m1;
const byte buttonPin = A2;
const int ledPin = 9;
const int PulseTimeBase = 1250;
const int PulseTimeIncrement = 250;
int myPulseTime = PulseTimeBase;
int buttonPushCounter = 0; // counter for the number of button presses
int buttonState = 0; // current state of the button
int lastButtonState = 0;
void setup()
{
// initialize the button pin as a input:
pinMode(buttonPin, INPUT);
// initialize the LED as an output:
pinMode(ledPin, OUTPUT);
// initialize serial communication:
Serial.begin(9600);
m1.attach(9);
}
void loop()
{
buttonState = digitalRead(buttonPin);
switch (buttonPushCounter)
{
case 1: // First push: 1/2 speed
myPulseTime = PulseTimeBase + PulseTimeIncrement;
break;
case 2: // Second push: 3/4 speed
myPulseTime = PulseTimeBase + PulseTimeIncrement + PulseTimeIncrement;
break;
case 3: // Third push: Full speed
myPulseTime = PulseTimeBase + PulseTimeIncrement + PulseTimeIncrement + PulseTimeIncrement;
break;
default: // 1/4 speed and reset the push counter
buttonPushCounter = 0;
myPulseTime = PulseTimeBase;
break;
}
m1.writeMicroseconds(myPulseTime );
}