Queues serve as a major scheduling device in computer networks, both at the network level and at the application level. A fundamental and important property of a queue service discipline is its fairness. Recent empirical studies show fairness in queues to be highly important to queueing customers in practical scenarios. The objective of this tutorial is to discuss the issue of queue fairness and its dilemmas, and to review the research conducted on this subject. We discuss the fundamental principles related to queue fairness in the perspective of the relevant applications, with some emphasis on computer communications networks. This is conducted in the context of the recent research in this area and the queueing related fairness measures which have been proposed in recent years. We describe, discuss and compare their properties, and evaluate their relevance to the various practical applications.