I want to show my caller id to everyone in my contact list but be anonymous for new numbers... do you know a method/app?
One possibility would be to prefix all numbers in your contact list by
*31# (which turns the callerID on for that call only), while having callerID disabled in your settings. Depending on whether the phone app is intelligent enough to detect this as to not belonging to the number, incoming calls should still be matched fine (you could of course first try it out with one number to check).
Second possibility is the other way around: Having callerID globally enabled, and prefix manually entered numbers by
Being unsure which method to use, take a third option and a look at Prefixer, which should be able to do the one or the other for you -- depending on how you configure that app.