Variants are a way to store the (field) settings (or values) a report can be executed with. Most reports can use variants.
An example: a particular report is only used for... the document types "RE" and "EZ". Thus the values "RE" and "EZ" will always have to be entered when executing the report. These values can be stored in a variant; starting the report with this variant would result in a selection screen with "RE" and "EZ" already filled in.
When you are dealing with large selections, it could be required to "process only half" of the selection first, and the rest later (or in an alternate job - simultaneously). But how do you know what "Half" a table is ? A simple report can help you out: load balancing table content by reporting the key values for each block.
What is a Dynamic Variant? Dynamic Variants consists of selection variable for a selection screen element for which a formula can be defined. If you want the selection screen to show a date range from today plus 7 days until today plus 70 days, the end used could arrange for this to happen. It will show as a non-changeable value range and it is calculated using the parameters you (or your end user) have passed.