When you have (for example) a JPEG file, each pixel is characterised by 'red', 'green' and 'blue' numbers.
The colour-space defines how these numbers map to an actual colour - it is what allows you to determine that { 90, 90, 10 } represents a particular shade of 'burnt-yellow', for example. sRGB and AdobeRGB are just different ways of mapping those numbers to actual colours. AdobeRGB is a mapping that can encompassed a much broader range of colours - including colours that can not be represented in sRGB at all.
Every method you have for displaying your images will have some limitations on the colour space. For example, a printer may be limited by the ink colours that it has, and a monitor by the particular characteristics of its phosphor or LCD filters.
Generally, it is easier to display sRGB images - partly because the smaller range of colours means that more output format can show the image as you intended, and partly because for historical reasons sRGB is widely used. However, some output formats (or image processing software) may be able to use a broader range of colours than sRGB can represented - in which case using AdobeRGB is a better bet.
Note that if you shoot in RAW, the CR2 files have a colour space that is defined by the colour-filter array on the camera sensor - the broadest colour space possible, but specific to any given make/model of camera. However, when you process the RAW files you can choose to re-map this to sRGB, AdobeRGB or any other space that you choose.