A Condition is added to a manipulator to control if the manipulator logic should be applied to the object or not. You don't need to add a condition though, it all depends on what you want to accomplish.
Just like with manipulators the available conditions follow type of core object. That means that only Order related conditions will be available for Order manipulators, and so forth.
Conditions comes with a set of settings. Available settings varies between each specific condition. Consult each condition article for in-depth description of that particular condition.
The most important key takeaway here is that each condition result in a boolean value, true or false. If all your configured conditions are true, then the manipulator will be applied for that particular object. Same goes if you have no conditions configured at all, then the manipulator will always be applied.
This means you can build detailed rules when and how data should be manipulated, by combining manipulator and a set of conditions.