Having a causal theory of a realm requires having an ontology: what kinds of things exist in this realm, and how do they work? Along with others, I offer a social ontology grounded in the actions and relations of socially constituted actors, which I refer to as methodological localism (link). (This is also the ontology asserted by the programme of "analytical sociology"; link.)
This entails, basically, that we need to understand all higher-level social entities and processes as being composed of the activities and thoughts of individual agents at a local level of social interaction; we need to be attentive to the pathways of aggregation through which these local-level activities aggregate to higher-level structures; and we need to pay attention to the iterative ways in which higher-level structures shape and influence individual agents. Social outcomes are invariably constituted by and brought into being by socially constituted, socially situated individual actors (methodological localism). Both aspects of the view are important. By referring to "social constitution" we are invoking the fact that past social arrangements have created the social actor. By referring to "social situatedness" we invoke the idea that existing social practices and rules constrain and motivate the individual actor. So this view is not reductionist, in the sense of aiming to reduce social outcomes to pre-social individual activity.
We also want to refer to supra-individual actors -- firms, agencies, organizations, social movements, states. The social sciences are radically incomplete without such constructs. But all such references are bound by a requirement of microfoundations: if we attribute intentionality to a firm, we need to be able to sketch out an account of how the individuals of the firm are led to act in ways that lead to the postulated decision-making and action (link).
So, then: what is involved in asserting that social circumstance A causally produces social circumstance B? There are, of course, numerous well developed answers to this question: statistical inference based on correlations of occurrences, conditional probabilities, and necessary-sufficient condition analysis. My view, however, is that there is a more basic meaning of causation: A caused B iff there is a sequence of causal mechanisms leading from A to B. This approach is especially suitable for the social realm because, on the one hand, there are few strong statistical regularities among social outcomes, and on the other, it is feasible to identify social mechanisms through a variety of social research methods -- comparative analysis, process tracing, case studies, and the like.
The social mechanisms approach (and the scientific realism that lies behind it) goes back at least as early as the late 1980s. An early statement of the view was presented in my Varieties Of Social Explanation: An Introduction To The Philosophy Of Social Science in 1991. Mario Bunge and Jon Elster took similar positions. The view took a large step forward, on the theory side, with the publication of Hedstrom and Swedberg's Social Mechanisms: An Analytical Approach to Social Theory (1998), and on the empirical research side with the publication of McAdam, Tarrow, and Tilly's Dynamics of Contention (2001). There are important differences; theorists within analytical sociology largely favor methodological individualism and mechanisms grounded in rational individuals, whereas Tilly and his colleagues favor "relational" mechanisms. But in each case the model of agent-centered explanations that either require microfoundations or are plainly compatible with such a requirement. (Here is a recent post on causal mechanisms.)
Several social scientists have anticipated this approach through their own concrete analysis of aggregation phenomena. A good illustration is Thomas Schelling. His work presents a large number of examples of mundane social outcomes that he explains on the basis of simple individual-level choices and an aggregation mechanism (Micromotives and Macrobehavior, Choice and Consequence). Features of organized crime, traffic patterns, segregation, and dying seminars all come in for treatment. Schelling demonstrates in concrete terms what sorts of things we can identify as "social mechanisms" and traces them back to the circumstances of action of individuals in social situations.
The framework of social mechanisms as a basis for social explanation raises an important question about the role and scope of generalizability that we expect from a social explanation. Briefly, the mechanisms identified here show a degree of generalizability; as McAdam, Tarrow and Tilly assert, social mechanisms can be expected to recur in other circumstances and times. But the event itself is one-of-a-kind. This is a familiar feature of Tilly's way of thinking about contentious events as well: the American Civil War was a singular historical event. But a good explanation will invoke mechanisms that recur elsewhere. We shouldn't expect to find general theories of civil wars; but our explanations of particular civil wars can invoke quasi-general theories of mid-level mechanisms of conflict and escalation. (Here is a recent posting on general and specific causal claims.)
Another important methodological question for this approach to social explanation is the issue of explaining general statistical patterns in social life. What if we want to explain something more quantitative -- say a gradually rising divorce rate or the finding that co-habitants before marriage have higher divorce rates than non-co-habitants? On the social mechanisms approach, we would want two things. First, we would like an agent-level mechanism that explains the statistic; and second, we would like to find a common cause if the phenomenon is similar in several countries.
Finally, the actor-based mechanisms approach invites an area of study which is now being referred to as "aggregation dynamics" (link, link). We need to have theories and tools that permit us to aggregate different micro-level processes over time into meso- and macro-outcomes, taking into account the complexity of causal interactions in a dynamic process. The tools of agent-based modeling are relevant here (link).