To gain muscle with the minimum of bodyfat (as I've said before a few times), you basically need to make your body into a food processor:
2g per lb target bodyweight in protein grams every day - don't bother counting carb or fat grams, just eat carbs to satisfy your hunger and help you get through the day and get some good fats in (olive oil, flaxseed oil, egg yolks, etc) every day in small amounts.
You don't want any food shuttled into adipose, so try to keep your meals pro/fat or pro/carb and try not to mix fat and carbs together in a meal (never eat them without protein!).
Cut off (starchy) carbs 3-4 hours before bed and do 30-45 minutes of light cardio on an empty stomach (brisk walk, treadmill, stepper, whatever) on non-workout days or more often depending on how easily you gain fat. If you want to shed some fat, then increase it to 60 minutes of cardio, possibly even every day - monitor your results and adjust accordingly.
Down two cups of green tea before your cardio to help fat burning (it's not a magic pill but every little helps).
Take glutamine, BCAAs, whatever you think pre-cardio to preserve muscle; don't eat until at least 30 minutes after finishing your cardio to prolong fat burning.
Eat the protein in your meal first - if you're eating chicken breast and rice, then eat ALL your chicken before even a mouthful of rice. This will ensure that the maximum amount of protein gets digested and absorbed by the body, hence the maximum amount of aminos will enter the bloodstream and be put towards muscle growth. Also, since protein needs more calories to digest than carbs and fat -> the more protein you can absorb, the more calories you burn while still getting the aminos. Eating a high protein meal will also keep your metabolism raised for several hours afterwards.
Umm .. if I can think of anything else I'll post (provided my other half doesn't tear the modem cable out of the wall).