Sorting by color is the first thing any LEGO collector will do, but soon you will find out that finding that one specific piece in a whole box of black pieces is quite difficult, and your sorting method will further differentiate between plates and bricks, SNOT pieces etc. Check out this post for more tips and details.
For your particular problem I would do the following: get as many large ziploc bags as you have sets (or if there are big sets, use multiple bags). When your son is in bed or at school, look at the back page(s) of the set instructions - there is a list of all elements and their counts.
Pick all the pieces for a given set based on this list. The lists are already sorted by color, so if you have your son's collection sorted by color this means you need to look only at one box at a time - a handy bonus! Put the pieces in a ziploc bag and mark the bag with the set name or set number (or print a picture of the set on adhesive paper and attach it - go to http://www.brickset.com for good pictures of new and old sets). Now, once it is time for your son to rebuild, he just takes the bag he needs and builds the set.
After he is done with playing with the set (and when it has slowly degraded into a million pieces, as is the case with the way my kids play with their LEGO) you can first do a quick clean-up by again sorting the pieces into the color-coded boxes, and then once redo the filling of the ziploc bag based on the instructions.