Sean is right that Language Read and Language Write rights are the tools you need to use, but denying a role Language Write access is unecessary and a problematic way of approaching the issue.
As soon as you specify Language Read/Write settings for a role, that role ceases to have automatic language read and write rights for all other languages. This conforms with the standard Sitecore security best practice of removing inheritance of rights rather than explicitly denying rights.
So for each editor role you grant language write access to the appropriate language and the role will be prevented from editing in other languages.
This also allows a user in two separate roles, each with its language write setting for a specific language, to have access to both of the languages. If you'd explicitly denied language write rights to one of the languages then that denial would overrule any explicit language write right the user was granted.
EDIT: See Mark Ursino's comment below - this doesn't seem to be the case for Sitecore 6.5