What's the difference between a Layer 2 & Layer 3 switch
Solution 1:
I will complete Zoredache's answer.
A L2 switch does switching only. This means that it uses MAC addresses to switch the packets from a port to the destination port (and only the destination port). It therefore maintains a MAC address table so that it can remember which ports have which MAC address associated.
A L3 switch also does switching exactly like a L2 switch. The L3 means that it has an identity from the L3 layer. Practically this means that a L3 switch is capable of having IP addresses and doing routing. For intra-VLAN communication, it uses the MAC address table. For extra-VLAN communication, it uses the IP routing table.
This is simple but you could say "Hey but my Cisco 2960 is a L2 switch and it has a VLAN interface with an IP !". You are perfectly right but that VLAN interface cannot be used for IP routing since the switch does not maintain an IP routing table.
Solution 2:
The layer 3 vs 2 refers to the OSI model. A layer 3 switch supports routing. A layer 2 switch only knows ethernet, you may be able to setup VLANs.
Solution 3:
Simply put, a layer 3 switch can forward packets between different networks like a router while layer 2 switches forward packets to different segments/or within a given network.