You forgot one very important thing. Most routers can also perform NAT (Network Address Translation) where as switches can not. That way, if you have a broadband connection, you can assign 192.168.* addresses to your computers, but the router will still have whatever address your broadband company provided. Also, routers will not transmit "private" addresses. If you have a network of 192.168 computers connected, with a switch connecting to another network, the message may leave your internal network. If they are seperated by a router, the message will stay in your subnet.

Most of the time when you by a broadband router (like linksys cable modems) it has a 4 port switch, with a built in router. That way you can connect 4 computers in your local subnet, and still connect to the outside world. But messages for your other computers stay in your subnet. They only leave if they are addressed to an outside computer.