You could possibly use regression or classification model trees for this purpose. The basic idea is that the tree accounts for dividing your samples into groups, while the models in the leaf nodes account for finding a fit of features to target variable for samples inside individual groups. In detail, there exist different approaches to such model trees: e.g. in junction nodes, some use classic feature splits, while others use models there too. Different ways of splitting samples are possible too (i.e.: the "more homogeneous groups" idea of trees depends on how you define "homogeneous").
More frequently used model trees would e.g. be the Quinlan models (M5, Cubist, C4.5, C5, ...). For some more infos and ideas see e.g. this answer on SO that shortly highlights the differences of classic model trees to CARTs, this question on CV that highlights some model tree concepts, or e.g. the Logistic Model Tree article on Wikipedia to get some idea on how those usually work. Further, a very practical perspective on different regression and classification model trees is given in
Kuhn, M. & Johnson, K. Applied Predictive Modeling Springer-Verlag New York, 2013
PS: concerning the "subset of features": one idea behind random forests is to only use a randomly chosen subset of features in each split. I'm not aware if there are model trees out there that do just the same, or a random forest that uses models in nodes. But if you stumble across a concept like this I'd take a closer look for sure.