Submodular-function maximization is a central problem in combinatorial optimization, generalizing many important NP-hard problems including Max Cut in digraphs, graphs and hypergraphs, certain constraint satisfaction problems, maximum-entropy sampling, and maximum facility-location problems. Our main result is that for any k ≥ 2 and any ε > 0, there is a natural local-search algorithm which has approximation guarantee of 1/(k + ε) for the problem of maximizing a monotone submodular function subject to k matroid constraints. This improves a 1/(k + 1)-approximation of Nemhauser, Wolsey and Fisher, obtained more than 30 years ago. Also, our analysis can be applied to the problem of maximizing a linear objective function and even a general non-monotone submodular function subject to k matroid constraints. We show that in these cases the approximation guarantees of our algorithms are 1/(k − 1 + ε) and 1/(k + 1 + 1/k + ε), respectively.