I understand that TLEs are used with SGP to predict future positions/velocities of a Earth-orbiting satellite. However, how are these sets obtained in the first place? Is it based on ground observations?
In short, yes. The U.S. Air Force uses the Space Surveillance Network to track all observable objects in space. They have a system in place which attempts to correlate tracks with existing objects.
If the system encounters tracks which do not match up with an existing object, they create a new object to track. The system then continues to correlate tracks to this new object. After collecting multiple tracks (which could take a few days depending on the geometry of the orbit), the object is assigned a static catalog ID number, and finally released to the public (assuming they designate the object as unclassified).
I simplified the process somewhat, but that's the general idea.