E46 3-series require a 36mm socket for the oil filter housing, yes I know it's big! Other than that it's rather straight forward if you have worked on German cars before. I would recommend a Mann, Mahle or BMW filter. In the box for the filter they will supply you with a new o-ring for the oil filter housing cap and a washer for the oil pan bolt. Underneath the car there should be a plastic or metal cover that involves using a phillips screwdriver to take off the one screw to access the pan.
For oil, I would recommend an LL-01 approved one. That includes GC 0w30, BMW 5w30, Lubro Moly 5w30, and Mobil 1 0w40. I would imagine Mobil 1 5w40 and Lubro Moly 5w40 would be excellent choices as well even though they are not LL-01 approved. Make sure to get 8 quarts cause I have had to use a bit over 7 quarts to get a full reading before, I also suck the extra oil out of the oil filter housing but I'm overly anal.