Goal: Collect a list by state from 10 different programs.
How do I achieve this goal?
Do I create smart campaigns or go to lead database?
If I understand correctly, you want a single list with all of the members from 10 programs sorted by state, right?
This can be done in the Lead Database by creating a new smart list with a Member of Program filter. Define the names of your programs in the filter (you can add 10 by using the green "+" sign) and then you can sort the resulting list by the state column. You could also export the list if you wanted to work with the data in some other program.