To add to that, I'd primarily consider LightGBM if you want to tweak it a lot, and CatBoost if you want great out-of-the-box results. Both are significant improvements over XGBoost, especially in training speed. I would only really consider XGBoost if you don't want software primarily developed by either Microsoft or Yandex.
All three are lightyears ahead of naive random forest implementations, and are in very active development.
I have about one million rows of tabular data, with 15 features, to make price predictions.
Is there a definitively better choice between the two?