my friends and I had this very argument the other day and it's actually a very sticky situation. For me, I played the shit out of COD4 and MW2 and just from hands on experience COD4 is leagues better. Why?
Alot of my argument is based off of first hand experience so you may have to just trust me on this one.
-more balanced weapons: in COD4 I could use any of the guns in any game type and finished the game with decent stats/victory. With MW2 basically the only weapons I feel that I worked well with were the assault rifles. Also, in MW2 the secondary shotguns were a bust.
-perks: simply put I feel like the perks were better in COD4. They were in no way, shape, or form perfect(3 frag, juggernaut, stopping power). MW2 had perks like marathon, lightweight, commando which were not practical at all, they just infuriated me to no end.
-THE MAPS!!!!: I cannot stress this enough. COD4 had hands down some of the best maps in any online multiplayer game ever. I enjoyed almost every single map with a few exceptions like Pipeline, and well that's really it. What I liked most about COD4 maps was the fact that I could actually snipe on most of them and they balanced well with every gun class. Each map had its close quarters and long range sectors. MW2 on the otherhand had a few "sniper maps" and I didn't really enjoy them quite as much. There seemed to be more spawn kills/sporadic spawning and they just weren't that balanced or good.
-plausible killstreaks: COD4 had killstreaks which rewarded the player and his/her team with a slight tactical advantage without completely crippling the other team. MW2's killstreaks were shotguns to the knee caps...fun as hell and an absolute blast! but very unbalanced and it hurt the pacing of a match.
-xbox live party chat/chat in general: this one is more of a personal one for me. When I played COD4 I loved having a majority of the players with their mics in talking smack and being silly. There weren't nearly as many "twelve year olds" and I take the smack talk with a grain of salt and don't let it bug me. I met alot of decent people online. MW2 came out when xbox live had already previously introduced the party chat system and less and less people would seem to use in-game chat. Once again, this isn't a major point in why COD4 is better, but more of a personal issue I have.
-Popularity: MW2 is the victim of COD4's success. It had to live up to and supercede the hype left in the wake of the juggernaut that is COD4. Infinity Ward probably felt like it had to make some drastic changes to live up to the hype, hence the massive explosion of points gained and the all-out hell of air support. And also, I blame this for so many of the annoying "twelve year old" gamers. MW2 was all over the place and call of duty became a household name. Everyone wanted COD and that's what they got. Not entirely sure if this is the reason for the spike in annoying kids, but it makes sense in my mind.
-Campaign: who cares? Sorry...didn't play enough of the campaigns to make a sound argument. Although I like COD4's better
personal preference though, no fact to back it up.
Long story short: COD4 is just better. This is not to say that MW2 is not fun or a bad game. I enjoyed it and played it alot, but I simply found the COD4 multiplayer to be far more balanced and well paced than MW2.
My arguments may be a little hard to digest, but please take it from someone with experience and just trust me on this one: COD4 is superior. I sure would like to see some arguments as for why MW2 is better because I am sure I have left some points out or could explain some of my points better.
Lasting message: there will never be an online shooter as good as COD4 was. I honestly never got bored of that game, but this is merely my opinion and for some people Halo 2 or fuck...some other game is the best ever. But for me, and probably many others, COD4 will always be up towards the top of best multiplayer experiences ever.