The first role of a witness is to provide infrastructure (servers) to produce blockchain blocks and secure the network.
A good witness is also someone who knows how steem blockchain works and has good knowledge on crypto-currencies.
Finally, being someone involved in the community life and growth.
I recommend you to read @pfunk excellent post on this topic.