Normally you need a laptop or something hooked into it over USB to feed it your G code, or do manual control. But I didn't want my laptop in the shop getting dusty while the CNC runs, and I also didn't want to risk the cheap CNC failing and throwing a voltage spike into my laptop.
So I opted to use the RasPi. Also makes it nice to have a web interface, and you can add lots of stuff to it (e.g. camera).
(Sainsmart sells an offline controller attachment, which allows manual control with buttons and feeding gcode off an sd card. But the RasPi is only a little more money and you get the web interface, etc)
P.S. I should tack on the usual warning about hooking up a life threatening device like a CNC to the network. I use an SSH tunnel to keep mine secure, instead of exposing CNCjs directly.