I've had dozens of managers (I'm a software developer) and the only ones worth a damn were ones that used to hold a real technical job before moving into management. I can deal with their outdated technological knowledge and their sometimes dogged insistence on old methodologies because at its core the job hasn't changed, and they realize that. My technical managers kept the rest of the business off our backs and helped give us the space we needed.
My non-technical managers never quite understood the level of detail that we are immersed in on a daily basis. They were impossible to deal with because they were always focusing on vague strategies like 'better communication' or 'migrating to best-of-breed solutions' or some-such marking nonsense.
It all comes down to this: How can a person be a good manager if they don't understand what exactly it is that you do on a daily basis?