I prefer them before they start crowing, or just as they begin; in my
experience, they get tougher and stringier--not meatier--after this point. Usually between 8-12 weeks, depending on breed. We had some Australorps that we got tired of waiting for them to crow and killed them at about 6 months; they were still lovely and tender.
We haven't had any meat birds/cockerels for several years now but we very rarely buy supermarket chicken as it just doesn't compare with home raised.