Or just look here...
I don't guarantee that my answer is correct or comprehensive, but here goes:
A hub is simply a repeater. That is, data sent to it from any one computer is repeated and sent out to every other computer connected to the hub. Hubs are typically used to connect small groups of computers together, i.e. on a home LAN, or 50 computers in a computer lab, etc.
A router is quite a bit different from a hub, and is typically used to connect large segments of a network together. They make up the backbone of the network. They are also smarter and rather than just sending their data every which way, they send it to where it's needed (a switch can also do this, but on a lower level). A router typically will not have 50 computers hooked up directly to it, but rather may have several hubs connected to it, and possibly a long distance connection to one or more other routers.