I just spent a couple of hours fixing my neighbour's Virgin Media broadband connection. I also use Virgin, so I was pretty sure there was no local service problem.
The symptom was that his internet connection was crawling along at about 700Kbits/sec on a 10Mbits/sec service. He'd complained to Virgin who had sent an engineer round and changed the set-top box and router with no success. The engineer apparently couldn't find anything wrong and blamed the PC, so my neighbour asked if I could sort it out before he called them again.
I took my netbook around (take note, Mr. Jobs), hooked it up via Wi-Fi and confirmed that his internet connection was working fine, so there was indeed something suspect in the PC. But what? No viruses, no odd services running, network cable connected fine and running at 100Mbits/sec. Hmm.
I tried changing the network cable. No luck. I installed a Wi-Fi dongle and it worked fine, so I started to suspect the network card. Checked the settings and remembered I'd set it last year to a manual 100Mbits/sec full duplex setting, as the Auto-Negotiation setting wasn't working properly. The router (a D-Link DIR-365) has a handy system tool that tells you each LAN port's speed & duplex status - I ran this and it showed the PC was only connected at half-duplex. Puzzled, I set the network card driver back to Auto and the internet connection started working properly.
Seems that a bug in the network card driver was to blame, although it didn't appear to have been updated since I last worked on it. Anyway, the moral is that when you have problems, don't rule something out because it appears to be working.
Similarly, I remember a couple of years ago that my Virgin connection kept disconnecting every few seconds. I blamed Virgin, the router, the cable - until I looked at the network graph in Task Manager and realised the network adapter was turning itself off regularly every few seconds. Replacing it cured the problem.