The short answer, as mentioned already, is readability: we read from top to bottom, so it follows that textual communication would flow from top to bottom.
Some applications, like short, sequential communication (ie, chat) require one to read previous messages for context, in order to understand the most recent comments, hence the use of bottom-appending of new messages, since (as far as I know) no human language currently in use reads from the bottom to the top. So, for example, if you missed the last 5 chat messages, you would scroll up and read as you naturally would, thus giving you the context of the last message and a full notion of what is being communicated and your eyes naturally land on the place necessary for you to respond.
Other applications, like longer, especially non-sequential communication which does not require previous content for context is better presented as top-appending. The most common examples of this are blogs, aggregators, and emails between two people, where you do not want to scroll down to find out what the most recent response is, since you already (presumably) have the full context fresh in your mind, or the other content is not contextually related or necessary. In such a case, scrolling would be time-wasting. In the case of the blog, if you are an avid reader, you want to immediately reach the most recent post without scrolling endlessly. Oh yeah, and facebook, twitter... (these are examples of aggregators).
Back in the day, if you wanted to start an almost guaranteed flame war on usenet, you asked whether to top or bottom post. People had (does this still happen that often?) very strong opinions on the matter for the above two reasons. Some people did not want to scroll through endless amounts of text when they already knew the context to reach the newest message, and others did not want to scroll through endless amounts of text to understand the context of the newest message. The optimal solution was therefore inline posting, where you include the minimum necessary context above your response, edit out any extra content, and answer different points in the sequence in which they appear in the original content (not at the top, and not at the bottom of the entire block of content). The best of all worlds, and it follows the readability guidelines mentioned above.
So, though we do not "always append messages at the bottom", in the case of a chat application, it often makes most sense to do so, because that is how we naturally read a flow of text.