Pretty sure most desktop Macs now have dedicated graphics cards like a PC, but an iMac is NOT easy to upgrade (I think opening up your iMac is verbotten under warranty terms, too, only an Apple-certified tech can do it). If you want good upgradability, you need to get... Mac Pro, is it? The really, really expensive ones with more power than even the most demanding gamer probably needs. You can still only use Apple-certified graphics cards in OS X, though. Go ahead and stick something else in there, but it won't work unless you run a different OS.
Apple does not make a machine that appeals to gamers, because there's nothing between the iMac and the Mac Pro in terms of power and price. If they made something more affordable than the Pro but MUCH more upgradable than the iMac, then they'd be able to cater to gamers, but right now, there's nothing to fill that gap.
Bootcamp probably doesn't help too much either, because with a copy of Windows, you're all set for gaming, software-wise. There's less motivation for someone to port Windows games to OS X if people can just buy the Windows game and play it on their Mac anyway. Of course, Bootcamp isn't perfect, some games throw a fit if you try and play them in Bootcamp (I can't play STALKER on my iMac, only on my Windows laptop... same with Episode One, for some reason, though all other Valve games run fine).
I've also read that Apple has sort of a non-commital, lazy attitude towards getting games on their hardware. Valve has more or less said that Apple shows less interest in putting Steam on OS X than is needed for [Valve] to feel comfortable working on such a project (though some stuff I also read said they wanted money from Apple for making OS X Steam, that wouldn't help). Developers probably aren't too confident about working with a company that has an attitude like this, especially since Microsoft's attitude is almost the opposite.
The fact that they ran on PowerPC for so long probably doesn't help, either. Every PowerPC Mac I've ever used has been a pain in the ass... "HEY, I'm busy! Leave me alone! No, I'm busy! Can a PC render your project this well? I don't care if it can do two things at once! DON'T TOUCH ME! HEY! Fine, I'm gonna crash, now, and you'll have to start over! Told you not to touch me..." It's probably much easier to port a game between two operating systems if they both use the same architecture. I dunno, I'm no expert.