A central problem in public health studies is how to make inferences about the causal effects of treatments or agents. In this article we review an approach to making such inferences via potential outcomes. In this approach, the causal effect is defined as a comparison of results from two or more alternative treatments, with only one of the results actually observed. We discuss the application of this approach to a number of data collection designs and associated problems commonly encountered in clinical research and epidemiology. Topics considered include the fundamental role of the assignment mechanism, in particular the importance of randomization as an unconfounded method of assignment; randomization-based and model-based methods of statistical inference for causal effects; methods for handling noncompliance and missing data; and methods for limiting bias in the analysis of observational data, including propensity score matching and sensitivity analysis.