The story begins back in pre-calculator days, when there were cash registers. We're not talking cash registers that scan, but mechanical things where you actually had to push the keys hard to punch numbers. The cash registers were designed with 0 at the bottom, and the numbers going up. Why did cash registers choose this organization? I was unable to find any clear answer. These were the days before customer surveys and mass marketing opinion polls. The people who designed cash registers evidently just thought it was the obvious approach--lowest numbers at the bottom, highest numbers at the top.
In fact, the earliest cash registers had multiple keys. You didn't enter 7 and 9 and 5 for $7.95; there was a separate column of keys for each decimal place. Think of a matrix, with the bottom row of 0's, next a row of 1's, then a row of 2's, going up. The right hand column would represent single units (cents), the next column for tens, then hundreds, etc. So, to enter $7.95, you'd actually enter 700, then 90, then 5.
When calculators made their appearance, they copied the cash register format. In fact, some of the earliest mechanical calculators (ah, how my wife loved her Friden!) had multiple columns, like the cash register. The earliest calculators had keypads that were ten rows high and generally 8 or 9 columns across.
When hand-held and electronic calculators made their appearance, they copied the keypad arrangement of the existing calculators--0 at the bottom, 1-2-3 in the next row, 4-5-6 in the next row, and 7-8-9 in the top row, from left to right. So, basically, they evolved from the cash register.
The Touch-Tone phone emerged in the early 1960s. Before that, there were rotary dials, with the numbers starting at 1 at the top right and then running counterclockwise around the dial to 8-9-0 across the bottom. Why would "0" be on the bottom? Probably because the dialing mechanism was pulse, not tone. Since they couldn't do zero pulses for 0, they did ten pulses, and hence put the 0 at the end. (Thanks to Radu Serban for this suggestion.)
There seem to be three reasons that the Touch-Tone phone keypad was designed as it was:
(1) Tradition. People were used to dialing with 1-2-3 on top, and it seemed reasonable to keep it that way.
(2) AT&T (the only phone company at the time) did some research that concluded there were fewer dialing errors with the 1-2-3 on top (possibly related to the traditional rotary dial layout).
(3) Phone numbers years ago used alphabetic prefixes for the exchange (BUtterfield 8, etc.). In the days of rotary dials, no doubt it seemed logical to put the letters in alphabetical order, and to associate them with numbers in numerical order. The number 1 was set aside for "flag" functions, so ABC went with 2, DEF with 3, and so on. When Touch-Tone phones came in, keeping the alphabet in alphabetical order meant putting 1-2-3 at the top.
So there we have it. Basically, calculator keypad design evolved from cash registers, while telephone keypad design evolved from the rotary dial. Tradition has kept them that way ever since.