I used to have a mobile phone which I synced all the time with iSync, where there was an option to only sync contacts with phone numbers. After getting an iPhone, I noticed this didn't exist. So why not use a Smart Group to do the job? Because they don't sync with the iPhone. But I also wanted everyone's emails and other details.
So I wrote up an AppleSript that updates a regular Address Book group with only people who have phone numbers. This worked great, then after a while, I wanted some numbers to not show up (people you want to keep in your phone but will never call, or whose name you don't want to see every time you scroll down your list). I created a group called Not Phone, and modified my script so that they are removed from the Phone group.
This script will create the groups for you. Warning: if you have a group called Phone already in existence, I suggest renaming the group (or changing the group name that the script uses in the first line), as that group will be modified. Here's the code:
Mac OS X Hints
http://hints.macworld.com/article.php?story=20091008150146513