I think all managers should know most of the theory and tools that the level directly below them uses. Programmers get managed by project leaders, which I believe should know how to code, and know about the tools of their programmers. The next level of managers should know about software project management, but I don't think they necessarily have to know about the specific Java IDEs and technologies that are used to implement the project.
The mind is a strange and wonderful thing. I'm not sure that it will ever be able to figure itself out, everything else, maybe. From the atom to the universe, everything, except itself.
I do development work in a small I.T. shop. I look at it this way: If a Project Manager, or Manager of any kind for that matter, knows how to effectively manage (e.g. resources/people, timelines, dealing with the business sponsors, etc...), I am ok with them not knowing how to code. Leave that job to the developers. However, I do admit in my experience I have found it helps me better in my job if I report to a Manager who does have coding experience. If for no other reason than to bounce coding challenges/ideas off of them.
A good example of this is company executives - how many of them move around in their careers, to companies that had nothing to do with the previous companies? Maybe a Senior VP, who worked in manufacturing, moved over into the retail sector. That doesn't mean they shouldn't have some knowledge of the business, but in general these sorts of career moves happen all the time. I'm not saying that's necessarily a good thing, though.