The idea is that software streams from developers, to package maintainers and then to users. When reporting a bug "upstream", it's reported from users to maintainers/developers or from maintainers to developers.
"Wonder what upstream has to say about this."
"Silly upstream, that bug has been ignored for 42 years now"
"Thank you upstream, for doing this in your spare time"
One meaning of the word upstream is used to refer to the core development of an Open Source project - e.g. an upstream patch is a patch targeted at being included in the project's main branch. Code submitted to the core developers of the some software can be said to be submitted upstream.
Another use of the word refers to the speed at which data can be transferred from the client to the server (uploading).
(source: Wikipedia: Upstream_(computer_science) )
We synchronise our development with upstream, and with Debian, and with other distributions such as Suse and Gentoo and Mandrake and Red Hat, on a regular basis. We draw code from the latest upstream projects (which might not even be in Debian, or in Red Hat, or addressed in the LSB).
(source: wiki.ubuntu.com/MarkShuttleworth )