The problem with dual licensing, either with two open source licenses or with one proprietary and one open source, is the issue of re-merging downstream changes.
The other answers are correct. When you download something and it has two license you can choose which one you want to use. However, things get complicated when multiple parties who accept different licenses begin modifying the code.
Suppose Genny accepts the GPL and Cindy accepts the CDDL. If both of them make changes to their code-base and redistribute them under their rights under the license, then those changes are not compatible.
If Ozzie the Originator of the projects wants to incorporate both Genny and Cindy's improvements and re-release the whole project again under both licenses, he will have to make sure he gets copyright assignment from both parties.
The problem here is that Ozzie cannot insist that either Cindy or Genny re-release their changes under both license. -that- would be a violation of some of the terms of the GPL/CDDL.
That is why companies that pursue dual-licensing strategies are so careful about copyright assignments... it keeps them out of a royal mess. Ironically this is one of the reasons why people are so concerned about MySQL going to Oracle. MySQL has been funded primarily by those who purchase licenses to use the software in proprietary applications. The owner of the copyright is the only organization that has the right to make that business arrangement. That would be MySQL, now Sun, and soon Oracle. Many are concerned that without this profit from the dual-licensing the project might languish under Oracle, despite the fact that anyone can fork MySQL under the GPL.
HTH,
-FT