Modern TeX distributions contain a huge array of various sorts of files, but sooner or later most people need to find something that's not in their present system (if nothing else, because they've heard that something has been updated).
But how to find the files?
Modern distributions (TeX Live and MiKTeX, at least) provide the means to update your system “over the net”. This is the minimum effort route to getting a new file: “simply” find which of the distribution's “packages” holds the file in question, and ask the distribution to update itself. The mechanisms are different (the two distributions exhibit the signs of evolutionary divergence in their different niches), but neither is difficult - see “using MiKTeX for installing” and “using TeX Live for installing”.
There are packages, though, that aren't in the distribution you use (or for which the distribution hasn't yet been updated to offer the version you need).
Some sources, such as these FAQ answers, provide links to files: so if you've learnt about a package here, you should be able to retrieve it without too much fuss.
Otherwise, CTAN provides a full-text search, at its "central database" site, as well as topic- and author-based indexes and a link to browse the archive itself.
A user of Google can restrict the search to
CTAN by entering
site:ctan.org tex-archive <search term(s)>
in Google's “search box”. You can also enforce the
restriction using Google's “advanced search” mechanism;
other search engines (presumably) have similar facilities.
Many people avoid the need to go over the network at all, for their
searches, by downloading the file list that the archives' web
file searches use. This file,
presents a unified listing of the archive (omitting directory names and
cross-links). Its companion
FILES.last07days is also useful, to
keep an eye on the changes on the archive. Since these files are
updated only once a day, a nightly automatic download (using
rsync) makes good sense.