If I set the value of posts_per_page variable on query_posts to a lower value than that set on the settings page than I will get the 404 error.
Example: settings set to 10 posts per page [$ppp = get_option('posts_per_page') will echo 10]
posts_per_page set to 3 on query_posts
If I have a total of 9 posts on my wordpress database then, with the settings above, page two will not show and I get the 404 error!