Yes, you will need iproute2 to do this. You may also need several options compiled in the kernel. I recommend looking over the Linux Advanced Routing & Traffic Control HOWTO
for a better understanding of the topic.
If you simply want to limit an interfaces upstream bandwidth I would do it like this:
tc qdisc del dev eth0 root
tc qdisc add dev eth0 root tbf rate 100kbit latency 100ms burst 1540
The first line cleans out the root qdisc on eth0, if this gives you a strange error message that is ok.
The second line creates a root qdisc for eth0 with a rate of 100 kbps. If any packet sits in the token bucket for more than 100 ms it will be dropped.