This calculator is based on a simple formula described in this thread.
You can get the current network hashrate along with the blocktime from here. The average blocktime represents the time in which a new block is generated and for each block 5 ETH are generated. Statistically you will be able to estimate how many ethercoins are generated by you given the fact that you know the whole network computing power. It's your part of the pie. That means for each 17.84 seconds (assuming thats the average time until a new block is generated) you get 5 ETH * 25Mh / 591.2GH. But remember this is an average. The estimation should be quite exact for the near future but if you want to estimate for longer term there is much uncertainty regarding how those variables evolve(Average Block Time, Average Network Hashrate).
For longer term prediction values are calculated based on anticipated network hashrate considering the evolution for the next 6 month will be similar as the one for the last 6 months.
The processing power of the cards is added from the spreadsheet shared in the thread mentioned above. The consumption is taken from the same place or from and the price is manually taken from amazon and neweggs(depending where is cheaper, the links contains affiliate code).