I voted 45 minutes because the option I wanted wasn't available, and it was the closest.
I think combats should only take as long as they NEED to take, no more no less. However, there is an upper limit in time at which you start to lose your audience. Just as in a classes or meetings, the magic number is about 50 minutes. After 50 minutes it's time for a break, which isn't always feasible for a combat scene, therefore I try to get them done within that 50 minute guideline. There is no lower limit, IMO.
I've been in games where combats took much longer, and I hated each one. I use 3.5E, and I attempt to keep combats under 50 minutes even with a system where most people feel it's not possible.
I do this by using an Excel sheet to track initiative. By using the sort function and prerolling initiative (everyone - players and DM alike - 20 each), I can have a random initiative each round of combat. This adds an element of uncertainty to combats and keeps all participants engaged (without having to wait for people to come back to the table) because they don't know when they are going to act.
I also use set defenses/AC for monsters and pre-rolled attacks, cutting down on the amount of rolling needed to be done during combat.
Also, I don't use this all of the time, but if I have players that take too long to decide what they are going to do, I will use a timer (egg timer, chess timer, or just a stopwatch).
I've found that the added benefit of keeping the action going, without having to stop for slow players, distracted players, or players that leave the table for other pursuits, keeps the action flowing and by extension, keeps the level of drama and the story, poignant and flowing.