Ok, I'm seeing this coming up multiple times, so I thought it might be a good idea to consolidate the info posted in one place. This is all "as I understand it" so please tell me if I've gotten stuff totally wrong. First of all, two things to remember:
* You can only download if somebody's uploading to you. There is no master server that gives you download whenever you have high upload.
* Downloading is passive. Your BitTorrent software can't demand or even request downloads from other sites. It just has to take what comes.
So, bearing that in mind: to get fast downloads, you have to get people to upload to you. How do people decide who to upload to? Every client has a certain number of people they're prepared to upload to, usually four - these are called upload "slots". ONE of these slots will be shared amongst everyone in the torrent, and everyone gets to take turns. The remaining ones are given, in order, to whichever others have the best upload rates back to that person. Bear in mind, it does not matter exactly what those rates were. If you are uploading at 100k/s to someone, and the 2nd best person is uploading at 7k/s, you still both get only one upload slot and thus get even shares of that person's download supply.
Ok, so let's look at the issues:
Is your 'net connection as fast as you think it is? Remember, Torrent talks in kilobytes. ISPs tend to talk in kilobits. A 56k connection won't download 56k a second; it'll download 7k. 256kbit broadband? 32k/sec. 1mb broadband? 128k/sec. 2mb? 256k/sec. And so on. Even this is generous, because a small amount of bandwidth is taken up with networking information which is seperate from the data you actually want to recieve. 5k/sec would be good for a 56k connection, for example.
Is your 'net connection better than others on the torrent? Although BitTorrent is a sophisticated piece of software, it sadly lacks the power to speed up other people's internet connections to ensure you get rewarded for your uploads! If you're faster than others, you can easily get the "uber-seed" problem where your upload far exceeds your download.
In this situation, you could try increasing your number of upload slots, but even this won't help massively - you're just on an unlucky torrent.
Is your connection asymettric? Many ISPs reduce their costs by giving out connection with different upload and download rates; like 2Mbit down and 256kbit up. This is in the assumption that you'll recieve more data than you'll send, which is true for web surfing, but not true for BitTorrent. You can easily find that the asymettrical portion of your download bandwidth is never used, because without the upload to go with it you can't get enough slots.
Are your ports open? When you join a torrent, you connect to several people in it. Some of those people might leave after a while. Unless you restart your download, you won't connect to anyone new to replace them. The theory is that, since anyone who joins a torrent connects to multiple people in it, any new joinees will connect to you as they join, so you don't need to connect to them. Unfortunately, it's possible that they won't be able to connect to you, in which case, effectively the amount of the swarm you can access will be reduced, causing major download slowdown.
What causes ports to close? If you're using a router for your internet service, this is your problem. As you probably know, every machine on the internet needs an IP address. Your router allows several computers to use your internet connection, but (unless you've paid big bucks) your ISP only gives you ONE internet address.
To get round this, the router hands out a bunch of "intranet" or "LAN" addresses - addresses beginning 192.168... - to all the computers on it. These addresses don't mean anything on the internet; they're just used to distinguish the machines attached to the router. When one of these machines sends a message to the internet, the router intercepts it, knocks off the 192.168... address, sticks your internet address from your ISP onto the message, and sends it on its way. Thus, your machines all share the same address. No problem.
But there is a problem when a message comes in. In this case, the message will be addressed to the internet address you got from your ISP. The router has no way of knowing which of the machines sharing that address it should be sent to. Unless you've told it somehow, it'll do a default behaviour, which usually is to throw the message away. This will cause BitTorrent to think your ports are blocked, even if you didn't know or believe they were.
The way in which you "tell it" what to do will vary with the router and setup, though, so it's a bit complex to describe in a general message.