We consider the maximization of a gross substitutes utility function under budget constraints. This problem naturally arises in applications such as exchange economies in mathematical economics and combinatorial auctions in (algorithmic) game theory. We show that this problem admits a polynomial-time approximation scheme (PTAS). More generally, we present a PTAS for maximizing a discrete concave function called an M -concave function under budget constraints. Our PTAS is based on rounding an optimal solution of a continuous relaxation problem, which is shown to be solvable in polynomial time by the ellipsoid method. We also consider the maximization of the sum of two M -concave functions under a single budget constraint. This problem is a generalization of the budgeted max-weight matroid intersection problem to the one with a nonlinear objective function. We show that this problem also admits a PTAS.