A large fraction of the theory of approximation algorithms, as we know it today, is built around linear programming, which offers two basic algorithm design techniques: rounding and the primal-dual schema. In the past, the latter technique has yielded the most efficient known algorithms for some cornerstone problems in P. Its adaptation to the setting of approximation algorithms has been equally potent, yielding approximation algorithms with good factors and good running times for a diverse collection of NP-hard optimization problems. This is so because despite being general, this schema leaves sufficient scope for exploiting the special combinatorial structure of individual problems. In this talk, we will discuss the historical milestones in the development of this schema, as well as the different ways in which it has been adapted to the setting of approximation algorithms. We will also point out reasons for believing that the full potential of this schema has yet to be realized in the setting of approximation algorithms.