I currently have a button, which has an icon/image on it. I have configured the button and image in XAML:
Use a DataTrigger (edit) in the Image's Style (/edit) on the change condition:
The myCondition variable would then be a boolean property in your ViewModel (or, more general, the Control's DataContext), something like
public bool myCondition { get { return ([whatever that condition might be]); } }
This may also include a setter and could as well be a simple auto property. As with the other MVVM answer, it will rely on the ViewModel to implement INotifyPropertyChanged.
The nice thing is, once the condition is no longer fulfilled, the DataTrigger will automatically set the Source property back to its original value.
Disclaimer: I have no way to test that right now, so take this with a grain of salt and probably some debugging effort...