ControlTemplate decides how a Control should look, means it defines the representation style for a Control. Example: Button can contain Image and Text.
DataTemplate decides the visual structure for underlying data, means how you would like to represent data.