I have a table of "people" and want to designate some of these as "speakers." Is the best design to create a field in the "people table" to do this or to create a second "speaker table" with the key of each speaker in the people table?
Depends. If all you want to save a speaker yes/no for each person, then a Yes/no field in the people table is enough. No need to complicate things.
However, if you wanted to record many attributes for a speaker (topic range, availability, speaking dates etc), then you'd be looking at another table or more.
If you only are and will designate people as speakers, then do it in the same table. If you foresee different roles being tracked ('coordinator', 'manager', etc.) then you should use a seperate table.
If you want to capture more data relevant to their speaker identity (Technical Speaker, Fluent In Spanish, Small Group Specialist, etc.), you would make a new table.