I would have him evaluated by a Childhood Developmental Specialist, just to rule out any of the ASD's (Autism Spectrum Disorders). My oldest is Autistic. She has sensory integration dysfunction and asperger's syndrome. She was almost three before she began speaking with the help of a speech therapist. Each child develops differently and no two autistic children are the same. the initial diagnosis is heartbreaking,but the more you learn the better it is for everyone. there's no use casting blame on anyone or anything, because it doesn't change anything. Since he's three and if he is diagnosed with an ASD, he is the right age for Early Intervention. this is a preschool program that is run by every school district in the nation. They will evaluate him again and determine his eligibility into the program. when he's accepted they will work with him and you on how to best work with his disability and he will see a speech therapist. this is all free, btw and is different from Head Start in that it doesn't matter how little or how much money you make. Autism is found in every 1 in 150 children, so you'd be far from alone. the earlier you get services and help, the easier it will be for him and for you. he screams when he's frustrated because he can't put into words what he wants to say. it's frustrating all around, believe me, i know.
if you have a family history of late talkers, that could be it as well, but i think it's always safer to find out for sure.
Good Luck! if you'd like more information on early intervention, contact your local school district and inquire. they will put you in touch with the district psych. hope this helps :)