Actually, being a Cisco Network Admin (CCNA), I can tell you that Zedric is absolutely right.
Routers are the most essential part of a network. Without a router, packets would not route from one network to another. Routers forward information (speaking internet) using IP addresses (OSI Layer 3 Devices). If your network address is (since Zedric used a class C, I'll stick with it so as not to confuse people):
201.11.20.XXX
You would setup your router so that it recognizes 201.11.20.0 as the network. Packets with the destination address of 201.11.20.XXX would not forward outside the router. Packets with anything else would (we're not going to get into subnetting because that's another long issue).
Routers are path determination devices. They determine the best path (by terms of best path, it doesn't mean fastest. Depending on the network setup, the best path can be based on the cheapest link, the most reliable link, or the fastest path) to forward the packet over and do so accordingly. Once a packet is forwarded, a record of it is stored into what is called an Routing Table (note that Routers store both source and destination addresses). Routers can also forward other protocols within the network that are non-internet based such as IPX (Novell), DecNet, AppleTalk, etc.
Switches are packet switching devices. They switch packets across multiple interfaces. A switch is commonly referred to in networking as a multiport bridge. Switches forward packets based on MAC addresses. When a packet reaches a switch, the switch looks at MAC address of the destination. If it finds a match, it forwards it through the interface that is listed in its MAC Tables. If it does not have a record of the address, it broadcasts the packet through all it's ports until a match is found. Once it finds the destination, it stores it in the Tables for future reference. The packet's destination is not on the network, the packet will travel up Zedric's diagram until it gets to the router, in which it will look at the IP address to see if it's on the network or not. If so, it disregards it. If not, it forwards it to the destination.
Hubs are a BUS device. This means that a hub could be considered as a single cable that connects all computers to a central point. Hubs are dummy devices. They do no path determination. In networking, a hub could be considered as a multiport repeater. When a packet gets to a hub, the hub retimes the packet, amplifys it, then sends it out all the ports. The problem with hubs is that unlike switches, in which bandwidth is dedicated per port, hubs are shared bandwidth. If you have a 100Mb hub, the bandwidth is shared with all devices. If you had a 10 port hub, you would have about 10Mb per computer (100Mb / 10 PCs = 10Mb per computer). Most older networks are hub based because that was the technology back then. If newer networks are running using hubs, they are probably doing so due to costs.
As for NAT, some *REAL* networks do in fact use NAT. The reason is because NAT provides an extra blanket of security and it's cheaper (especially if you need a lot of addresses and you can't get a block). But it is better to run NATless due to translation limitations.
SOHO routers, as stated are not *REAL* routers, but Internet Gateways. They do not make path forwarding decisions. They simply allow uses to connect multiple PC's to a single connection. Path forwarding comes from your next hop, which is usually your ISP's area router.