We started Oscar out on Iams because it was the food that the breeder had been using. He didn't seem to like it much though, so I did some research by looking at ingredient lists and customer reviews for a variety of puppy food brands. I don't know a ton about puppy food, but from what I have read and what I have been told by staff at the Humane Society when we were talking to them about what they used, the best indicator of a good dog food is its first five ingredients, and it's best if at least two of those ingredients are meat. Corn and wheat should be avoided because they can apparently cause allergies.
I was quite impressed by Blue Buffalo, and we bought the Puppy Chicken and Brown Rice recipe. The first five ingredients were deboned chicken, chicken meal, whole ground brown rice, whole ground barley and oatmeal. I liked that the first two ingredients included meat, that there was no corn or grain and no meat by-products. Oscar seemed to love it and devoured it every time we put it in his bowl. I have read that other dogs eat all of the kibble but leave behind the small, dark "Life Source bits" which apparently contain vitamins, minerals and antioxidants, but he ate it all with no problem.
We just bought the Blue Buffalo Small Breed Puppy Chicken and Oatmeal recipe today and will be switching him over to it gradually. The first five ingredients are deboned chicken, chicken meal, oatmeal, peas and whole ground barley. My thinking was that the new recipe will be better for him because it is tailored for small breeds, but we'll see if there is any noticeable change after the switch.