Hub

A device which connects multiple machines together using Ethernet cables. It is a very simple device. It's jobs are to jam all ports when it detects a collision and to send any incoming or outgoing packets down all ports except the one where it originated.

Switch

A device which connects multiple machines together using Ethernet cables. It is a bit brighter than it's counterpart the hub. Collisions are heavily reduced or , if both ends are running at full duplex, completely eliminated. It also does not flood all the ports with every packet it gets. It keeps track of hardware address and sends the packet only down the port that matches this address.

Router

A device which has the ability to connect multiple networks together. It is different from a switch that is just able to link multiple devices together. Routers use routing tables to make decisions on where packets are supposed to go. They are also able to communicate with other routers using routing protocols such as RIP or BGP or some other routing protocol. They can also perform other nifty tasks such as Network Address Translation so you don't have to pay your ISP for multiple IP addresses every month!

Bridge

The reason they call this a Bridge is because switches have this ability to bridge networks together. For example, if Randy has a switch with 10 machines on it and Tommy has a switch with 4 machines on it and we run an Ethernet cable from Randy's switch to Tommy's switch (assuming the distance is less than 100 meters) and connect the two we have just created a bridge. The two networks are now joined and then all you need to do is add routing to the mix. See Spanning TRee Protocol below.

Mixed Media Bridging

A bridge that can connect multiple different types of networks, such as a Token Ring, an Ethernet, and an FDDI. Cisco's page on the subject.

Spanning Tree Protocol

The spanning tree protocol is a network protocol that prevents bridged LANs from having loops in their topology. When two paths to the same location are discovered it uses an algorithm to figure out which path to disable. All bridges know which path was disabled. They each have switching tables that map Hardware addresses to ports on the switch. If a path were to go down the secondary path that was disabled would then be reactivated so that packets can flow down this new path and still reach their destination.
Thanks to Tommy Giovanis for almost all of this.