It all depends how your organization is set up.
For small teams the strategy that I would advocate is that all checkins should be directly to your trunk, diffs should be sent to the team, and that all checkins should be reviewed by the team from those diffs. This has little overhead, and encourages lots of small checkins (that are easier to review by email). Depending on your group, it likely will sense to rotate who has the primary responsibility for reviewing code at any given time. You then branch testing releases off of the trunk, send them through QA, then release to production after QA has approved them.
Larger teams probably do development in multiple branches. Depending on how you are organized you have opportunities for code review before check-in (works with pair programming), before merge (this is effectively how many open source projects work), or at regularly scheduled points in your development cycle (these would be more formal reviews).
The key difference here is that small teams are all about reducing process, while large ones are all about controlling communication overhead. But don't dismiss the small team dynamics as unprofessionalism. Small teams enjoy huge productivity advantages over large ones. Lawrence Putnam did some fascinating research on this which you can find quoted in Software Estimation: Demystifying the Black Art by Steve McConnell (see page 229). He found that for medium sized projects (~50,000 lines of code) the average 5-7 person team will complete in less calendar time than an average team of size 15-20. I would bet that the small team has more coherent code, so they probably accomplished more.
Remember that these are average teams. Note that locating 5 exceptional people is easier than locating 20 of them. It is therefore easier to create exceptional small teams than exceptional large ones. Given documented individual productivity differences, I would bet serious money that an exceptional team of 5 people will easily have higher throughput than an average team of 100 people. And their turnaround time on small projects will be much faster. Even if you pay them four times as much per person, that's still 1/5 of the cost!