QoS is not going to be something that can be easily summed and explained in a post or two. It is a very complex issue and will require a lot of work and playing around on your part to get it right until you are happy with it. Also depending on your hardware, you may want to stay away from the layer7 stuff. It can be very resource intensive and if you don't have enough horse power on the router, won't do you much good. Most of the time identifying traffic based on ports and amount of traffic passed on that connection will be enough.
Depending on your setup you have a couple of basic ways to go.
1.) In Mangle, mark connections and then mark packets based off of the connection marks. In Queue Trees, set up the appropriate queues.
2.) In Mangle, mark packets directly and in queue trees, set up the appropriate queues.
The first situation is the easiest to get going, and takes up less resources. The main draw back is, if you are using connection marks for something else, like Load Balancing, it makes it very difficult if not impossible to use this approach.
The second option takes up more resources, and requires more rules because you need rules that will catch both sides of the connection, but depending on the setup, may be the only real option open to you.
A good place to start is this Wiki article.
http://wiki.mikrotik.com/wiki/Manual:Connection_Rate
See how it works and how it's marking connections and packets. Play around with it until you understand what is going on. Once you have it down start to branch out from there by classifying different kinds of traffic and adding in additional leafs to your queue tree. Just take it one step at a time.
And lastly, that amount of bandwidth is an extremely small amount. I'm not sure setting up any level of QoS with 25 users with that much bandwidth will do any good.