First of all you should make a custom site permission on the top level. This is easiest done by going to the site permissions of the top level site and in the settings menu choose the bottom item (Permission settings). Then open the contribute setting and click the copy button, this saves you copying all the ticks by hand. Uncheck the edit and delete ticks on the list permissions. Save the permission under Contribute No edit, no delete.
Now you go to the list and apply those rights to the groups that you want to restrict in this way. Done WRONG!!!!!
Probably someone was smart and thought that they could remove the edit rights in the advanced settings of the list
If the list has this setting COMBINED with the special permission we just made the users that are in the group that have Contribute No edit, No Delete rights will get an access denied message when they try to create a new list item.
The setting should be
For the desired effect.
This blog entry should save you a few hours fiddling about with settings.