So far, success - everything looks fine. BUT, when I try to change the permalinks to http://jahangiri.us/news/2009/06/sample-post/, and create an .htaccess file in the directory with index.php, containing the following lines:

the posts ONLY show on the front page of the blog. If I click the title or try to add a comment, I get a 404 error. I can still see posts and comments from the Dashboard; clearly, everything's still there.

However, if I remove .htaccess and switch back to "default" permalinks, everything works fine.

Any advice? This is quite frustrating. If it involves doing anything with the database, please use small words and straightforward declarative sentences; my knowledge of databases is...not extensive.

Doesn't work. I get the following error on EVERY structure EXCEPT default:

If your .htaccess file were writable, we could do this automatically, but it isn’t so these are the mod_rewrite rules you should have in your .htaccess file. Click in the field and press CTRL + a to select all.

Holly:
Right now it looks like its working. Is it fixed or did you just reset it?
The first thing is as Samboll suggested is adding:
Options +FollowSymlinks
to the top of .htaccess. Normally it is on by default but some hosting companies have it off to screw with people.

The idea about creating an empty htaccess with 666 permissions and then running permalinks from WP-ADMIN is because wordpress does most of its rewriting within WP itself and not in the htaccess. WHen you change certain things like the static pages or URL settings you usually need to again set the permalinks, so WP can set its internal rewriteting.
Also do you have an .htaccess file in the directory above? Could possibly cause inheritance issues.
Lastly what are the URL settings in WP?

Hello... I realise this thread is near a year old.... but i was longing for a solution to be at the end of it! and cant see one... yet!

I need to ressolve this same issue:
default and blog ok
permalink and blog gives 404 page not found (the link and the htaccess work ok... and i added (to the top of the htaccess) the bit mentioned earlier in this thread...
this is what my .htaccess reads at momment:

This worked for me, have a feeling it'll be at the root of a lot of problems here.

If, like me, your .htaccess file didn't seem to be making a blind bit of difference no matter what was in it and adding RewriteEngine On didn't help then maybe you need to look at your vhosts.

Mine had AllowOveride set to 'None', this means that .htaccess files for the domain were not observed or allowed to override the functionality set by the vhost. You need to set it to something else, in my case I set it to 'All'.

sudo nano /etc/apache2/sites-available/yourdomain.com

<Directory "/path/to/your/app">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>