If you open up your library -- just right-click on the library in Eagle and select 'Open' -- you'll see that Eagle breaks parts down into three separate 'chunks':
This is the representation of your physical part -- where you design the actual metal contacts, specify whether the pads should have solder paste applied to them, lay out the physical dimensions of the part, perhaps put down an indicator to let users know where pin 1 is, etc.
This is what is commonly referred to as the 'footprint'. It might be a standard package like SOT23-5, TQFP48, or 0603, or the 'footprint' may be a one off design, such as a special connector with drill holes in a specific location, etc
'Symbols' in Eagle are the visual or conceptual representation of your packages, and are what will get placed on your schematic to be hooked up with all the other parts.
The symbol contains a representation of each 'pin' or contacts on the package, usually along with a descriptive label to say what that pin does (ex. 'TXD', 'GND', 'USBD+', etc.).
The 'symbol' is the bridge that connects your schematic to the physical PCB. There is also a rich visual 'language' around symbols that allows engineers to communicate functionality and intent, such as knowing that a two pin blob is a resistor, a capacitor, a diode, or a fuse.
It's very important to provide basic information (such as clear pin names) here, and respect commonly-defined visual 'terms' so that people understand what you are trying to say. There are two main families of symbols, one predominantly used in the US and the other predominantly used in Europe and elsewhere, but either is fine as long as you follow one of them:
Devices in Eagle are where the 'Package' (or Packages!) are combined with the selected 'Symbol', and you indicate which pad on your footprint or package should be connected to which pin on your symbol.
You normally only have a single 'symbol' (some exception exist for very large and complex parts), but you can have multiple 'packages'. For example, we can define a standard 2-pin symbol for a resistor, and create a new 'RESISTOR' device. We can place our resistor symbol in the new device, and then add 10 or more different physical packages that we can use with that symbol (for example 0402, 0603, 0805, 1206, various through hole parts, etc.).
The advantage of separating packages and symbols is that we're allow to reuse common parts in this manner, and use existing packages across multiple parts. You will probably reuse the SOT23-5 package across a wide variety of devices, for example, from Voltage regulators to battery chargers to small sensors.