In one of the best articles I've read, newmobilecomputing editor David Adams goes to a length to explain the difference - and why one of his previous articles caused a big wave of comments from users in US.
As I said before, some companies offer 2.5G services and brand as 3G - lots of marketing hype here. There are clear and defined rules that draw the line between 3G and 2G, but some companies just overlook them.
In 1999, the ITU (International Telecommunications Union) approved an industry standard for third generation (3G) wireless networks. The first generation was analog cellular voice networks, 2G was the replacement of those with a digital signal (usually TDMA, GSM, or CDMA), and the third generation is networks capable of high speed data transfer. The standard that the ITU approved in 1999 was called International Mobile Telecommunications-2000 (IMT-2000), and it specified the following bandwidth requirements:
2 Mbps in fixed or in-building environments
384 kbps in pedestrian or urban environments
144 kbps in wide area mobile environments
In theory, carriers can not claim 3G services if not reaching these levels of service. But this is not what happens, and David's article is a good text about this and his experiences in the field. Worth reading it!