I'd think prefix based filters would be more likely to be correct. Since you have to explicitly list what you think you should be announcing you protect against having routes you don't expect in your tables and against having interactions that cause unexpected routes to get tagged as announceable.
OK, so then what do you do with BGP customers? Ideally, you'd be filtering the ingress advertisements from your customers. Now you have to add those prefixes to your egress filters as well.
Using communities to accomplish this is much more efficient and "hands-off".
-danny
You can build your customer BGP filters off data in the IRR. Make it a requirement that BGP customers must keep that information up to date (or do it for them). -- -Chris (cgarner@sni.net)