Composite performance and dependability analysis is gaining importance in the design of complex, fault-tolerant systems. Markov reward models are most commonly used for this purpose. In this paper, an introduction to Markov reward models including solution techniques and application examples is presented. Extensions of Markov reward models to semi-Markov reward models are also mentioned. A brief discussion of how task completion time models and models of queues with breakdowns and repairs relate to Markov reward models is also given.