In a live, production system where the code is evolving, every single day is a stress test. Database tuning, similarly, is about knowing when to stop; when the performance is acceptable, you stop.
Specifically to Oracle, the debate about whether or not to rebuild indexes has raged for years; some people believe in doing so, some do not. An index is a B*tree structure; it's going to accurately reflect the data in the table. In many cases (exceptions to follow) rebuilding an index is akin to going on a crash diet; sure, the indexes will get skinny in the short term, but over time -- perhaps as little as a few days or hours processing -- they'll return to their previous state. So long as performance is meeting objectives, why worry about it? Rebuilding indexes generates significant I/O activity (gotta read the table and/or index), and either generates significant redo activity (writing the redo vectors for the new index entries) or requires an immediate backup (if you rebuilt the index with NOLOGGING, the index is now unrecoverable).
Exceptions:
Bitmap indexes should generally be
taken offline and rebuilt between
dataloads, as they can pathologically
bloat via DML activity
If one
radically offloads a great deal of
data and is using global indexes or
some other non-locally partitioned index,
coalescing (not rebuilding, just
pushing adjacent space on neighboring
leaves together) may be prudent.