designers shouldn't be doing markup or css...they're designers :)
but like others have stated, it is normally to further target a node on a given page...though...it doesn't really make much sense to assign the <body> node an id as it's the only node of its kind on any html document.
Programmers seems have tendency to overthink and overcomplicate things creating unncessary classes and nested containers. I personally like to keep things simple.
The only case I would use <body id="foo"> it's to overwrite some existing style properties based per page. For instance, you already build the template structure and all major layout styling properties are done but you need an extra page which has few own tweaks so you can add new divs etc or you can add unique id to body of the document then overwrite style properties but it really depends on individual situation.