well a p[c is indeed cheaper, usually. if you are JUST programming and doing some multi-tasking you don't need a super number crunching computer for that.
like others said it depends on what you want to develop for. if you want to make windows applications (vb c#) then you basically need a windows comp. if you want to make ios applications you basically need a mac. Of course there are ways around this (2011 office has VBA again yay! and theres a few ways to program ios on windows)
mac is unix, so that is nice, its got the gcc compiler and all that fun stuff, terminal, vim if you like. xcode is a very nice suite. if you plan on doing embedded programming, windows is likely the winner (though i do it on mac or linux) so it depends on what you want. one thing to keep in mind is like others said its very easy to make a windows or linux vm on a mac. but not making a mac vm on a non mac os.
and as much as i love macs, they are hardly user upgradeable. basically you can do ram, and hdds in the imac are basically impossible, if not a huge pain anyway to remove the whole screen, besides the fw issues, and i guess shorting wires together, lol sounds risky, and I'm an electrical engineer, lol but i wouldn't dare do it. too much work, if you want upgradability go custom build. hope that helped. but really jsut think of what you want to program. but with a mac you'll be able to install windowws to, so you can get both facets.