Whether doing Release planning or Iteration planning, you are entirely reliant on the estimate provided by Dev and QA. (release planning refers to what Features will go into a given release, where iteration planning refers to what User Stories will be coded/tested in each iteration).
Your development team may be good at designing, coding, and testing software, but this doesn't necessarily mean they will be good at providing accurate estimates for these tasks. This is a hard thing to train on-- estimating is a soft skill that typically comes with experience in the field.
Like many other challenges in agile development, the art of estimation all comes down to COMMUNICATION.
I've been on projects where estimates were done separately, with little or no communication between teams. QA, for example, had no insight as to how Dev arrived at their figures. Dev had no insight into how QA arrived at their figures. The lack of communication showed in the discrepancies of our numbers.
When Dev and QA don't work together on estimates, assumptions and oversights are the norm and things get missed.
We realized this and started to do estimates together. The 'estimates meeting' turned into something much larger than estimates alone-- the conversation forced us to dissect the design and discuss the possible ways of implementing the feature. And, of course, our estimates became more accurate.
This turned into the first in-depth discussion around new Features. It flushed out issues that would have otherwise gone unnoticed until further down the development process.