Empirical evidence suggests that there exists substantial heterogeneity in individuals' social preferences. However, there is little theoretical basis supporting this observation and economic models often assume that all individuals are identical. Hence, the aim of this thesis is to provide theoretical foundations for the observed heterogeneity of social preferences and to derive its implications for environmental policy. We first extend the framework of evolutionary game theory introducing the concepts of evolutionarily stable population and an assortment matrix to study the evolution of preferences in assortatively matched interactions between heterogeneous individuals. We show that there exists a heterogeneous evolutionarily stable population composed of both fully-selfish and fully-moral individuals for some but not all games and assortment structures. Therefore, the preferences that are favored by evolution depend on the socio-economic environment. In particular, our analysis highlights the key role played by the assortment structure in the existence and the robustness of heterogeneous evolutionarily stable populations. We then design a model with heterogeneous moral individuals involved in a social dilemma. Our framework sheds light on many empirical findings explaining why some individuals are willing to voluntarily engage in costly pro-environmental actions even though the impact of their efforts on environmental externalities is negligible. Investigating how individuals' beliefs can alter their behaviors and hinder cooperation, we demonstrate why financial incentives can fail to foster pro-environmental behaviors in some cases while non-financial incentives such as nudges and educational campaigns could be successful. Consequently, better accounting for the social motives behind individuals' decisions in economic models could help policy makers design more effective policies.