I’ll take a stab at this and start by saying that the most important skill that you can have in almost any form of business development is empathy. Being able to see a product from the eyes of your users is key to being able to develop a great product. This same type of rule applies when managing others because you need to be able to see your app through the eyes of others but you also need to be able to look at your product in the ways that your other team members do and understand their points.
Empathy is the basis for most of the other things you mentioned such as ‘being good with clients’ and ‘taking requirements’. When you can empathize with people, all these tasks become easier. You start to want the same thing the client wants and your relationship grows because of that. The same rule of relationships apply to the people you manage, you want the same overall goals and work towards them together.
As for knowing the technology, that all depends on the type of manager you want to be and what part of the process you’d be involved in but generally I would say having at least a good understanding of the technologies is ideal. You don’t have to be a world class developer but if you have to resolve a decision between emberjs and knockoutjs, I think having knowledge of what your developers are actually doing is required. It also helps when you need to talk with clients about what you can and can’t build. If you don’t know where the client side stops and the server side starts, you’re not going to be very effective at determining what can happen in their app.
As far as grooming for these types of things, I think that experience is key. Getting more involved in projects while you’re not at that level can be incredibly beneficial. Start watching managers you interact with daily and see what they do right and what you would prefer to be done better. Work with your current managers to take more of a role in the development of the overall product and see what you can learn.