I'm still learning about how Drupal works under the hood, so please bear that in mind, but it seems that the comment setting on the Content Type acts as a template for any nodes created using it, therefore as the other poster said, you need to go back and change all your old nodes, which can be a bind.

If you're happy diving into the database and doing it via SQL you can with the following queries, which I've tested on Drupal 7, but looking at the db structure for Drupal 6, should work for it as well:

We need to set the 'comment' column in the table 'node' to '1' for any of the nodes that we don't want commenting enabled. Make sure you select the correct 'type' (that is the internal or machine name of your Content Type)* - in my case I have a content type 'announcement':

UPDATE node SET comment=1 WHERE type='announcement';

Now in actual fact this won't do anything! The actual setting is stored in the node_revision table, so we have to do it there as well (we did the first statement for consistency's sake):

UPDATE node_revision SET comment=1 WHERE nid IN (SELECT nid FROM node WHERE node.type='announcement');

That did the trick for me, and saved me the aggro of a load of mouse clicks to do the same thing.

Thanks for the SQL snippets! I made 100+ pages/books and then needed to disable comments. This is my first Drupal site, but so far I'm pretty impressed with the depth of everything, including the users.

I tried the above for a new content type, and I don't see Disabled in the 'Default comments setting for new content' menu; only Open, Closed and Hidden. I'm still unable to disable comments on my custom content type. Is this a bug?

Open - allows people to post comments
Closed - shows comments that have been posted in the past, but new comments cannot be posted
Hidden - 'disables' comments. No comments are displayed and none can be added.

The setting that you make on the content type edit screen is not a retroactive change. Meaning that if you have existing content that you have created, and you change the default setting, the existing content will not be effected. In order to hide the comments on existing content, you have to do one of the suggested above methods. Either edit each page and change it to hidden, or execute a SQL query.