A recent question about alternatives to logistic regression in R yielded a variety of answers including randomForest, gbm, rpart, bayesglm, and generalized additive models. What are the practical and interpretation differences between these methods and logistic regression? What assumptions do they make (or not make) relative to logistic regression? Are the suitable for hypothesis testing? Etc.
Disclaimer: It is certainly far from being a full answer to the question!
I think there are at least two levels to consider before establishing a distinction between all such methods:
Here are few other points that I think are relevant to the question.
In case we consider several models--the same model is fitted on different subsets (individuals and/or variables) of the available data, or different competitive models are fitted on the same data set--, cross-validation can be used to avoid overfitting and perform model or feature selection, although CV is not limited to this particular cases (it can be used with GAMs or penalized GLMs, for instance). Also, there is the traditional interpretation issue: more complex models often implies more complex interpretation (more parameters, more stringent assumptions, etc.).
Gradient boosting and RFs overcome the limitations of a single decision tree, thanks to Boosting whose main idea is to combine the output of several weak learning algorithms in order to build a more accurate and stable decision rule, and Bagging where we "average" results over resampled data sets. Altogether, they are often viewed as some kind of black boxes in comparison to more "classical" models where clear specifications for the model are provided (I can think of three classes of models: parameteric, semi-parametric, non-parametric), but I think the discussion held under this other thread The Two Cultures: statistics vs. machine learning? provide interesting viewpoints.
Here are a couple of papers about feature selection and some ML techniques: