Owen Leonard provided a succinct and useful description of how new developments make their way into a final release. Here's my rendition of the process....
He began the story with "a patch is submitted" which means that your or your developer has figured out how to add the enhancement or fix the bug and the code has been made available to other developers to take a look at. That code is "a patch."
Once the patch is available to others, it can be pulled into a live or (more likely) a test system so someone can test it. Once someone tests it and verifies that that is indeed a useful and functional patch, they can "sign off" on that patch. It is great to have more than one person "sign off" on a patch. The patch cannot move to the next step until at least one person has signed off and changed the status of the patch to (predictably) "Signed Off."
After that, it is really up to the core development team to take the necessary steps to get that patch into the next release.
The QA manager (currently that person is Ian Walls, congratulations, Ian!) tests the "signed off" patch again and confirms that it works AND that the code meets project standards. Only the QA Manager can get it past this step. Once it is approved, its status become "Passed QA."
Next, the Release Manager examines the patches that have "Passed QA" and assuming the RM also agrees that the patch is good, that patch is "pushed" which means it becomes part of the next release!