We study an abstract optimal auction problem for selecting a subset of self-interested agents to whom to provide a service. A feasibility constraint governs which subsets can be simultaneously served; however, the mechanism may additionally choose to bundle unconstrained attributes such as payments or add-ons with the service. An agent's preference over service and attributes is given by her private type and may be multi-dimensional and non-linear. A single-agent problem is to optimizes a menu to offer an agent subject to constraints on the probabilities with which each of the agent's types is served. We give computationally tractable reductions from multi-agent auction problems to these single-agent problems. Our discussion focuses on maximizing revenue, but our results can be applied to other objectives (e.g., welfare). From each agent's perspective, any multi-agent mechanism and distribution on other agent types induces an interim allocation rule, i.e., a probability that the agent will be served as a function of the type she reports. The resulting profile of interim allocation rules (one for each agent) is feasible in the sense that there is a mechanism that induces it. An optimal mechanism can be solved for by inverting this process. Solve the single-agent problem of finding the optimal way to serve an agent subject to an interim allocation rule as a constraint (taking into account the agent's incentives). Optimize over interim feasible allocation profiles, i.e., ones that are induced by the type distribution and some mechanism, the cumulative revenue of the single-agent problems for the interim allocation profile. Find the mechanism that induces the optimal interim feasible allocation profile in the previous step. For a large class of auction problems and multi-dimensional and non-linear preferences each of the above steps is computationally tractable. We observe that the single-agent problems for (multi-dimensional) unit-demand and budgeted preferences can be solved in polynomial time in the size of the agent's type space via a simple linear program. For feasibility constraints induced by single-item auctions interim feasibility was characterized by Border (1991); we show that interim feasible allocation rules can be optimized over and implemented via a linear program that has quadratic complexity in the sum of the sizes of the individual agents' type spaces. We generalize Border's characterization to auctions where feasible outcomes are the independent sets of a matroid; here the characterization implies that the polytope of interim feasible allocation rules is a polymatroid. This connection implies that a concave objective, such as the revenue from the single-agent problems, can be maximized over the interim feasibility constraint in polynomial time. The resulting optimal mechanism can be viewed as a randomization over the vertices of the polymatroid which correspond to simple greedy mechanisms: given an ordering on a subset all agent types, serve the agents in this order subject to feasibility. Related work: Cai, Daskalakis, and Weinberg (2012) solve (independently) the single-item interim feasibility problem and use this solution to give tractable revenue-optimal multi-item auctions for agents with linear utilities.