Any app with the permission
ACCESS_FINE_LOCATION can trigger GPS – unless you've explicitly switched off GPS location with your device settings. To scan for possible candidates, you can use a Permission checker. There's e.g. Permission explorer which allows you to browse installed apps by permissions, so you can limit your watch to relevant candidates.
Permission Explorer: categories, apps by permission; LBE (source: Google Play; click images for larger variants)
If your device is rooted, there are also other means. I'm e.g. using LBE to protect my privacy. Concerning location, I can restrict on a per-app base whether an app can always access it, never access it, or I want to be asked when it tries. The latter method should definitely bring up your culprit – and even in case you missed the event, there are always LBE's logs (accessible from inside the app) you can check.