Fun is obvious, but to be more specific:
1. Fairness, players need to feel that they're getting a fair deal from penalties and what the enemy is throwing at them
2. Flexibility, when a player says something like: "I fire my acidic crossbow bolt at the bosses head as he rides away" you need to come up with something
3. Understand your parties capabilities, you also need to recognize that certain monsters are not CR'd properly
4. Look at stuff a player puts before you, if none of your players give a lick about the stuff outside of core, then don't use it
5. Be able to write a nice story that keeps the player's engaged
6. BE FAST, no one likes waiting