I tend to go for the database option as this enables easy querying with meaningful data (i.e. names rather than ID's).
If I am fairly confident that the values will not change then I will enumerate them in the application as wellas it makes development much easier when you do not have to remember the ID of an item and also makes the code much more readable.
This approach allows me to choose whether to include the lookup table in queries or not. For example I would include it in a report query where I want to display the lookup value but may not include it when loading data in my application if I can infer it from the enumeration instead.
Obviously if the values are subject to change or modification enumeration may not be possible.
Only you can judge the impact of UI culture, I am 100% certain of the culture of my users so do not have to worry about it too much :).