The title really says it all. I mean, is there a particular reasons for which logos have to appear at the upper-left corner and not, say, in the upper-centre?
Example: all Stack Exchange sites, Google, Yahoo...
Western language visitors read left-right, top down. Go to any Hebrew or Arabic website and where's the logo? Top right. The convention originates, I suspect, from letterhead design. Early websites were analogs of paper, and that analogy still dominates web design, although we're gradually weaning off it. The other common analogy, a store front, still has the logo at the top (only a few, usually very high end stores eschew a sign over the window).
The other reason we put logos top left is that we want people surfing the web to know where they are, and they rather expect to find that information in that spot. When you land on a page, the first place you will look is that top left corner unless there is something else that dominates the page.
There are many fantastic designs that don't put the logo there, but they are still in the minority for now. I expect that to change over then next decade or so, as web sites are gradually (or rapidly, who knows?) superseded by apps.