In my experience it's the combination of all the usual suspects, but key phrase page names do help.
So, for a quick SEO recap:
- Page Title
- File Name
- H1, H2, H3
- Lots of text including the key phrase and like phrases (e.g. shoes & boots & sandals & socks)
For instance, one of our clients is on page 1 for "Louisiana Herbalife Distributor" and I think the combination of page title and URL are really helping. It's a wordpress blog with a custom domain name.
That's the only page on the site with such high ranking and I believe the page name is a big plus.
As you can see from the following: http://www.google.com/search?q=site%...fe+distributor
Google sees quite a few pages, but when you do the search above that's the only one which ranks.
I believe, just like good domain names, the more the page name matches the search phrases for which you're competing the better your chances.
Some rules I've picked up along the way from various reading:
Use "-" rather than "_" to separate words: my-key-phrase.html vs. my_key_phrase.html.
In the old Unix days, the latter was preferred on the file system but the engines treat the "-" as a delimiter.
Matt Cutts the well-known Google anti-spam guy writes about it here: http://www.mattcutts.com/blog/dashes-vs-underscores/
And as a final example, go Google "Locomotive Consultant" and look at the URL on the #1 ranked result. Sure, it's prominently featured in the blog post, but more important is the file name in my opinion.
And just to be clear, very few people search for locomotive consultant so it's not a highly competitive phrase.