Our development shop [gently ;-)] ostracizes the developer who "breaks the build" as a way to encourage quality. We also deliver awards for the group who breaks the build most infrequently. Unfortunately, the carrot and the stick treatment doesn't always work.
Completing the build locally is a good first step but obviously, it doesn't replicate the server CI process identically.
Brian Harry writes of an open source solution for TFS described as "Gated Check-ins". The code is shelved until receiving the necessary sign-offs (manual or automated) and can successfully pass the build sequence. Once successful, the source is unshelved and submitted into the "real" build sequence.