Slow Leopard
Had exactly the same problem which confounded me for weeks.
Tried everything I could find online, from hassling ISP, tweaking router, changing network settings, updating drivers, standing on my head, standing on my next-door-neighbour-but-one's head...
Try this - it actually worked for me.
Make sure you have a proper functioning Snow Leopard installation disk.
Back up your entire existing Mac System disk/partition to an external drive (I used SuperDuper
http://www.shirt-pocket.com/SuperDuper/SuperDuperDescription.html), and for safety's sake, any other partitions that happen to be on the same physical disk as your MacOS. If unsure, back up EVERYTHING - you should anyway!
Using Disk Utility, completely wipe and reformat that drive/partition. Be careful not to wipe anything you haven't backed up.
Using the Snow Leopard installation disk, do the obvious and install Snow Leopard.
Connect to the internet and use speedtest.net or similar to check your new connection speed.
I went from 5 or 6 Mb/s using Leopard, to 0.2 Mb/s on upgrading to Snow Leopard, to 20+ Mb/s after a fresh installation (on a fibre optic connection which 'promises' "up to" 35 Mb/s).
Not sure if it's all down to continual system updates, system/software clashes, or corrupted system files over time....
But it doesn't seem to be the OS itself, Apple hardware, or ISP-related issues, though any of those interacting with another may degrade services to a point.
I'll keep an eye on my system as I reinstall software as and when I need it, and if there is any major change I'll report back.
I'd be happy to hear back from anyone that finds this fix useful, or indeed useless.
Good luck!
PS. Using Channels 1, 6 and 11 is good advice, and should be used where possible to avoid clashing with neighbouring networks, but in my experience the performance boost is less than 20%, and a 20% boost of piss-poor is still poor, so not a solution for terrible connections. More a tweak for connections which are already acceptable. In fact, in situations where, say, 120 networks are all sharing 1, 6 and 11, using 3, 4, 8 or 9 might be beneficial, but still not a fix to the overall problem.