The franchise of Battlefield has always offered one thing that CoD, or any game for that matter, can't compete with: Diversity.
Of course we all hate the jet whores, the armor whores, the infantry whores, the helicopter whores, but we all have access to those abilities as well. If you consider that BF2 seemlessly integrates all areas of the game cohesively, that makes it's design prowess so much more esteemed.
I applaud the folks at DICE for providing me with such an awesome game. I think it's about time someone said "thank you" EA and DICE!
However, CoD is an awesome game as well. It's in the same mold as Counter Strike is to BF2.... it's purely infantry based. For infantry combat, I choose CoD or Source every day. For diversity and overall challenge, I choose BF2.