For starters your quality of code will increasingly drop the longer the hours put in. Programming is a creative process which can easily burn out, but beyond that the number of defects introduced will increase. Unless you're working on an hourly pay schedule then you don't get anything out of it. Your company may think they're getting a steal, and think they need to do it to make ends meet, but ultimately will go down hill in quality and quantity as their programmers burn out.
I might consider working an extra 5 or so hours in a given week on a rare basis if the situation truely warrants it, but on a weekly on monthly basis I would refuse. I would put in 8 hours a day and go home. If the business fires me for that then they wouldn't get even that much out of me, would be increasing the load on the remaining employees, and increase the chance someone will quit under the pressure, repeating and increasing the cycle.
The last question asked, by someone else, in an interview we gave today was what would the person do if they had a hard deadline and something that was already there yet missed by the person sprang up, requiring extra time. I was ready to answer the question for the interviewee with the above and walk out. I'll be discussing this with my own manager soon.