If you are having trouble connecting to games through a router, and you don't have issues when you go directly to the cable modem, you can set your Xbox as the DMZ host.
Basically, your cable connection gives you a single IP address that the rest of the world can talk to. When you connect the modem directly to the Xbox, you don't have to worry about this - you have a single device and all traffic is sent directly there.
When when you go into a router, you have two networks - the external one (i.e., the Internet) and your internal network (your computer, your router, your xbox). If Xbox Live wants to send data to your Xbox, it has to rely on the router to figure out where to forward the traffic to. This is where Network Address Translation, or NAT, comes into play.
If you're having trouble connecting to games (or hearing certain players in, say, Rainbox Six: Vegas), then NAT is probably the problem. You can confirm by going to the System Blade and testing your network connection.
When you run the tests, the important piece is the one that say NAT. For best results on Xbox Live, you want it to say "Open". It says "Strict" or "Moderate", then you'll want to follow the instructions after.
You can get an open NAT by forwarding specific ports or enabling UPnP, but for me (and many other routers), this doesn't always work. In this case, I recommend setting your Xbox 360 as the DMZ host. By putting your as the default DMZ host, you have a fallback - if the router doesn't know where to send the data (which can happen for a number of reasons), it sends it to the DMZ host.
This is a two-step process - first you'll want to set a static IP for Xbox so it always gets the same address, and then you'll need to set it as the DMZ host.
Giving your Xbox a static IP
Turn on your Xbox and connect to the network. You'll need to know th IP address for your device, which is available on the System blade in Network settings. Once you have this information, go to the web admin interface for the router and add a reservation for the Xbox.
On Netgear routers, you can do this by clicking on LAN IP Setup in the left panel. Once on that screen, you'll see a section for Address Reservations.
Click Add and you'll be brought to a screen listing the connected devices, one of which will be your Xbox.
Select the Xbox (i.e., the option that has the same IP as your Xbox) and click Add.
Setting the DMZ Host
Once this is done, click WAN Setup on the left panel. This will take you to the screen you see below.
Put in the IP address for the Xbox in the Default DMZ Server and apply.
That's it - this will generally eliminate most of the problems connecting to and hosting games.