This is SUCH a loaded question and you will get FAR too many opinions.
Here is what you want:
Laptop/software programs suck because you HAVE to have the laptop in the car, the battery has to be good and you have to have no software issues with the program and laptop.
For daily maintenance you want either a dedicated/stand alone OBDII tool or an OBDII smart phone App and interface. You will ALMOST always have your smart phone with you and you can leave the OBDII interface in the car. Also the smart phone Apps are very powerful and can log/record the full OBDII stream for further data analysis which many software packages cannot do.
Then you want BMW Scanner 1.4.0 for coding some modules and dealing with ABS or SRS faults. You will find that you will not use BMW Scanner 1.4.0 very often. It is also not very useful for drivability issues as only a few DME's offer live data support on this program.
INPA is another software tool that can be useful.
As for performance tuning, I would not waste your time and effort on this. This is not a lot more power/performance that can be gained from most of the E46's. If you really want to get some soft of DME tuning, look at some of the more mainstream turners to see what they offer.
You should also read this -
http://forum.e46fanatics.com/showthread.php?t=967204
Anyone that states you ONLY need BMW Scanner 1.4.0, INPA or the GT1 software package has NO IDEA what they are talking about. They live in some fantasy land and do not understand ANYTHING about OBDII or the fact that most of the software packages written for the E46 are 15+ years old and have very little ability to do powerful things like record/log OBDII data streams, provide Emission Readiness Monitors Status, provide Freeze Frame or Live/Realtime DME data..
There will be a lot of folks that totally disagree with me, especially on the M3 forum here, but so be it. I know what you need and I have all of the items I described plus MANY other tools and software and RARELY use any of the laptop based software programs.