Indicating the state of a button is always difficult and you are right : you do not want to be subtle. Subtlety is too close to ambiguity and you do not want ambiguity in your interface.
You also want to give a feedback for any action by the user: in your case something has to happen after the user configures a filter. Maybe the list changes, maybe the button changes, maybe you indicate clearly what has changed in a sentence.
It is going to depend on what is the use of the filter: is it to help search? is it to display a new list for printing? is it to delete or classify items?
In the case you want to display a new list: then you have to show in some way what it is that you display.
In the case you want to select items in a list, it depends:
- If there is an action directly connected to this selection: you do not need to change the button since the user is going to remember what she just did.
- If there is no direct action or for search then you can use a sentence like: 4 items of this type have been selected, 4 results for : [search], the thing is you have to be clear, or labels (that you can add and remove). But the button does not have to change (since you can use a different filter: the button is related to the action not the state).
It is hard to say what fits better to your situation so I would say : you do not need to change the button since there is a clear understanding of what has been done the exceptions being a selection that is going to be used in a row for another action since the user will remember what she just did. Furthermore changing the button might lead the user to think it is not actionable anymore.
All that said it really depends on context. For instance a good use of changing buttons in Gmail :
Something else: if the filter functionality is really going to be helpful and used by the user it may deserve a little more room than it apparently has.