I'm going to flat-out say no, you don't need to rebuild or reorganize indexes. You can just update statistics on most systems and never noticed a difference. It can make a difference in very specific workloads.
Generally though, with non-frisbee disks, and a decent chunk of memory, it's not getting you to performance Valhalla.
Index maintenance is often a tremendously expensive and time-consuming way to improve one metric: index fragmentation percent. I'm saying this as someone who used to waste a lot of time trying to improve that metric.
It never did quite fix anything, and I never was sure if all the time and resources spent on that maintenance saved my queries a commensurate chunk of time and resources on the other end.
As soon as I stopped, I had more time and resources for more important things, like DBCC CHECKDB
.
So when should you rebuild an index? Almost never, unless you need to change something about that index, like fill factor, compression, partition alignment, etc. The one upside of rebuilding indexes is that they update statistics, but you can just do that separately.
When should you reorganize an index? Maybe occasionally, if you really want to compact LOB data. Doing this doesn't even update stats, which is a bummer.
The reason a lot of people think that rebuilding indexes fixes performance issues is because the stats update they do invalidates a bad query plan. But again, you can do that without beating the snot out of your drives and running out of space with just a stats update.