The important thing is in my opinion to be technical enough (and I know plenty of non-programmer's who are very technical) that you can sniff out a bad estimate and either ask the right questions or do some research for yourself...you don't have to know the answer...just how to find it.
You also have to be able to motivate a developer, respect them and their knowledge, and earn their respect. If I respect their opinion/estimate when they tell me it "can't" be done, or they have to change the underlying structure which takes an extra week then they in turn will usually respect me when I say...we can't do it right now, but lets fix it later in the project. This is simple management 101, which a good PM should have. I also earn their respect by finding a better solution that turns their 2 week task into 2 days...Google can reveal amazing things.
I have had to manage things which were outside of my realm of expertise...and guess what...in those instances, a little Googling taught me just enough to be dangerous
All in all, I think some perspective is needed, did the person asking the question have any technical background? Can they ask the intelligent question and do the necessary research? If not...then it will fail...but if they can do that, then I believe they can be successful, even if it might be rocky in the beginning.

































