The original post asks very open ended questions about using route maps with redistribution: why use a route map with redistribution, when to use a route map with redistribution, and how to use a route map with redistribution. Here are my explanations of the 3 questions:
1) why use a route map with redistribution. If you redistribute from one routing protocol to another routing protocol by default all routes learned in the originating protocol are sent to the receiving protocol. If that is the desired outcome then there is no need for a route map. But sometimes we want to exert some control over what is redistributed so that only some of the routes from the originating protocol are sent to the receiving protocol. Route Map is one way to exert that control. (distribute list is another way to exert that control).
2) when to use a route map with redistribution. This is closely related to 1). If you are doing redistribution and you want to exert control over what routes are redistributed then you would use a route map.
3) how to use a route map. Within a route map there may be one or multiple statements. Within each statement there might be zero or one or more match clauses which can identify certain routes and can permit or deny those routes to be distributed. Within each statement there might be zero or one or more set clauses which can establish values assigned to the redistributed route (especially to set the metric of the redistributed route).
Route maps can be a complicated topic to explain. I hope this simple explanation is enough to satisfy this open ended question.