firstly make sure you're trying to connect to servers in your area, for example if you live in the UK then any server outside of the UK will be laggy.
pro tip *if you're on DSL* (this fixed a problem that i was having for weeks, which came about after upgrading my DSL package):
open your router control panel and find the connection information.
if it says datapath INTERLEAVED, then you need to phone up your ISP and tell them to turn it off (change it to FASTPATH).
your ping should be reduced by at least 40ms.