Hi. I have module GSM without TCP. As it is possible to organize stack TCP for GSM the module. For processor and must be C or C+ and never assembly..
You don't specify a processor architecture, so it is quite hard to answer your question.
It is possible to run a TCP/IP stack in the microcontroller and use PPP to communicate - that is the normal way to use GPRS in case you don't run your program inside the GPRS module.
Using an external TCP/IP stack normally gives a lot more flexibility than using a GPRS module that has built-in AT commands for performing the networking.
You may look to the RL-ARM components that provide the feature to communicate to a GPRS module.