@pastanaga - Students are fairly perceptive and will often surprise you if you let them. They want to be engaged, they just often don't think that's possible for them. Letting them learn with each other can really get them involved in the work and it can help all levels of students. The more advanced kids can get practice from helping the less advanced kids (although they shouldn't have to do this all the time) and the average kids can help to extend each other.
Cooperative learning groups are amazing in some circumstances, but I would definitely examine the theory thoroughly before implementing it.