Think of upstream and downstream as if you're standing in the middle of a river. "Upstream" is where the water flows from, "downstream" is where it flows to.
In very few words, an "upstream" program (or library) is when it is retrieved from the developers, as opposed to "downstream" which means you retrieve it from your distribution of choice - such as Debian. You can package an upstream program to make it available "downstream", which is what the Debian manual entry explains.
Someone explained this even better, here: