To further avoid the "magic happens" explanation...
Bittorrent websites list a bunch of links to .torrent files. They tend to have searchable databases, but the core functionality is that they somehow collect .torrent files (by upload or by grabbing them from other sites), and then provide those .torrent files for you to download.
.torrent files store information about a collection of files. A single .torrent file can describe a single file (say an mp3 or jpeg), or it can describe a directory tree with thousands of files of various kinds. .torrent files themselves are fairly small, generally 1kb to 512kb, depending mainly on how many blocks* the torrent contains.
There's a lot of advanced functionality in .torrent files, but the basic information they contain are:
a) a list of trackers that (possibly) are tracking the torrent
b) a hash for each block* of the collection of files specified by the torrent
Bittorrent trackers speak http but not the kind your browser speaks. A bittorrent client (azureus, utorrent, etc) connects to one of the trackers listed in a .torrent file, asks for a list of peers that are leeching or seeding that particular torrent, and uses that list to figure out who to connect to in order to get more blocks* from the torrent.
When you load a .torrent file into a torrent client, it connects to the tracker(s) listed in the file, tells the tracker(s) that it is a peer for that torrent, and gets a list of other peers for that torrent.
Suppose you have a collection of pictures you want to provide as a single torrent. uTorrent or Azureus or various other programs will let you specify the directory the images are in, and will create a .torrent file describing that directory. Roughly, it takes all the files, glues them together, and divides them up into blocks*. These blocks can be smaller like 64kb or larger like 16MB. For each block, it computes a value (hash) that it can use to check for corruption when it receives a block of the torrent from another computer. It also asks for and stores the primary tracker url for the torrent. It adds various other stuff to the torrent, but those are the main things.
Then you have to upload that newly-created .torrent file to the primary tracker you specified. This generally requires you to have an account on the tracker site.
After that, you can load the .torrent file in your bittorrent client (if it isn't already loaded), and other people can download your .torrent from the tracker site. Their torrent clients see the primary tracker url in the file, connect to that tracker, find out that your computer is also linked to the torrent, and then they start requesting blocks of the torrent from your bittorrent client.
I think I got that right, but I haven't actually read the bittorrent spec...