I lean towards reference tables in a relational database for one very simple reason: The "C" in ACID.
Consistency is beneficial, not just for programmers, but for users as well. I've worked in databases where fields like this were just text. The user interface displayed a dropdown or a group of radio buttons, making it appear like an enum, but at the data level it was just open-ended text. As time went on, the list of values changed, but old records were not updated. People would build reports and ad-hoc database queries expecting to find a record that gets accidentally filtered out because it was an old record with a value that was no longer presented on the user interface. This can be annoying, up to and including a fatal error in application code if proper defensive programming does not exist in the code.
References tables should include at least 7 columns:
- Primary key (string or int, but I prefer string in this case)
- Date this record became a valid choice
- Date this record was deprecated
- Who created the record
- When it was created
- Who last updated the record
- When it was last updated
An optional "description" column might be a good way to record why the record was created in the first place.
Foreign keys from other tables back to the reference table ensure your enum in the application tier has a valid representation in the data tier. The begin and end dates for each record give a clear indication about whether each of those enum values are currently in use, or whether they have been deprecated. This helps when creating reports or ad-hoc SQL queries, because you know you have a record in a table with some sort of additional information about the business use for that record.
Remember that things change. Male and Female seem like pretty rock solid concepts, but social norms change. What used to be viewed as a binary choice is expanding in some countries and cultures. New values could get added. Old values can be deprecated. A reference table gives you a way to restrict your current choices, as well as keep an historical record of past choices that used to be valid, but are no longer valid.
Addendum: To make gender an even more confusing concept, each individual person might identify with multiple genders at once. Medical fields need to know which gender you were born with, because it can make a difference in medical care. Other use cases might just need to know a preference.
See Is there an industry standard for gender model other than male and female?