MQTT for GSM/GPRS sheild
Nick O'leary published an MQTT client for Arduino.
I use it extensively.  You can find it here: http://knolleary.net/arduino-client-for-mqtt/.
Once you have established a tcpip connection you can use this library to send/receive via the MQTT protocol across a GPRS/GSM modem.  I have used it successfully on:


the Arduino GSM shield 
the Seeeduino GPRS IoT panel 
a Freetronics Arduino Mega connecting via ethernet to a TPLink MR3020 router