COD4 cause it has better gameplay. Halo 3, personally, I think gets a little boring after a while, but it's still fun to play with friends.
And, the multiplayer system for COD4 is better, in my opinion. Instead of just running around and picking up weapons, you just design your own weapon scheme as you level up.
As a last note, COD4 has a wider audience, so you'll get more players everytime you log into xbox live, or look for a server on PC.