Lots of hardware out there, usually in watch format with wirelessly connected remote devices.
You get the main watch with time, alarms, stopwatch, often computer download modes.
Then the accessories. Heart Rate Monitors almost all use chest straps, (lick/wet the strap to get it to work at first, once you start sweating you will be fine, but when you first put it on, likely won't get a reading) to measure heart rate and transmit the data to the watch.
Then there are two approaches to distance.
1) GPS:
Like your car or phone GPS, but alas not great for running accuracy. Has issues when it is cloudy, in cities with tall buildings and not a large enough view of the sky, and trees. (Getting better in later models).
Anecdotally two friends ran a known marked half marathon course side by side, wearing the same Garmin 201 GPS (Earlier model) but with different firmware revisions. Over 21.1K they differed by 4K.
The issue with GPS is the cumulative error. Every GPS reading has some minor error in it. In a car, you can travel several hundred or thousand feet between readings (say once a minute?) but running you likely can have an error bar that is greater than the distance travelled. And each error is independent of the previous one, so it can cancel out or build up. It just depends on satellites in view, and atmospheric conditions.
The antennae are often large, and thus the watches seem bulkier but that seems to be getting better as well with each new generation of device.
Having said that, modern GPS users seem to love them.
2) Intertial foot pods:
Not sure if these are loosing traction as GPS units get smaller, but these measure acceleration, integrate back to get velocity and again to get distance travelled. Each step your foot with the pod attached accelerates forward and decellerates as it moves. It measures these and adds them up.
There is a calibration run you should do periodically, but these are not terrible on accuracy.
If you get a model that has a computer interface you get to download all the good stuff and play with the data.
Calories are always an estimate. Running X minutes does not burn Y calories. Depends on weight, slope of the run, pace of the run, etc. Heart Rate helps a bit in estimating as it gives a better effort estimate but everybody is so different it is mostly an estimate still.