Launch X431 can do all that you ask which is what I use. There is also INPA with my laptop which i had to use recently after someone stuffed up my CAS module. That tends to have more BM specific functions but some of it is in German and it is not that intuative. It does have the potential for really messing up the car. Sometimes I just use an app on my phone. It really depends what you are trying to do.
A snap-on modus is worth half of my car.