I had this problem on my E90 last year, was a bit of a head scratcher as no fault codes were being logged.
If it's intermittent and no code is showing, and it's the wheelslip light that comes on it's likely to be the reluctor wheels on the drive shafts, where the driveshaft fits into the hub there is an ABS sensor that reads the gaps in the reluctor wheel, these are on the end of the driveshaft and look like a slotted ring.
To check if it is
Remove the wheels, take the sensor out , it's only held by a bolt, and rotate the hub whilst shining a torch down the sensor hole, if you see any shiny bits on the reluctor wheel this means there is corrosion built up under it and its pushing the reluctor out closing the air gap to the sensor, a temporary fix is to put a 1mm thick washer under the sensor flange where the bolt holds it, spacing the sensor out for now, you should then be ok to drive until you purchase a new pair of reluctor wheels, they are roughly £20 each, and easy to replace.
There are other culprits but this is the most common on E46/90 BMW's and easy to check so might as well start there.