I waited until Rizzo was 11 months old, mostly because he just seemed to stop growing at 4 lbs and I just got a little freaked out. But when we went to the vet for the pre-surgery check found out that he was 6lbs and healthy enough to go through the surgery. Had bloodwork done and when everything came back fine we went ahead with the surgery. The same day he had the surgery I brought him home, once I gave him his dinner he was a little slow but pretty much himself. By the next day he the biggest problem I was having was keeping him from running around like a crazy dog. 
It is entirely your decision, but I have witnessed first hand a dog suffering from prostate cancer that was caused because he wasn't ever neutered (my dad was totally against removing a male's testicles, until he saw the suffering it caused). Buddy walked up to our porch and peed right in front of my mom and myself and it was strait blood, and he was crying the whole time. Due to his age the doctor recommended that we opt out of surgery and have him put down (he was 14, and a large dog). It was awful, but I at least know how the cancer will affect a dog and will never keep an male un-neutered. But putting it off longer than you would a large dog I dont think is a bad thing. It's different for males and females, I think for females to have the max protection agains OC you should have them spayed prior to their first heat, but even if you don't get them in before then you are still adding years to their lives and helping to reduce the risk of the cancer. 
Good luck with whatever you choose, only you can decide what is best for you baby 
