Coding style is always a topic for hot debates, and there are different standard guidelines you can follow such as the GNU Coding Standards ,the Linux kernel coding style and pythons Style Guide for C Code and Style Guide for Python Code (which has the same authors but is quite different amusingly enough). Coding style consists of many different aspects such as naming conventions, whitespace in commands and how to use parenthesis. This rant only focuses on indenting though.
Indenting is designed to make code more readable by reflecting the control flow in the leading whitespace. This is generally a good idea since it makes it a lot easier to quickly see how code is structured. In fact this idea is so good that python makes it mandatory by making the indenting a part of its syntax: instead of using things like braces ({ and }) or keywords (like begin and end) it uses indents to indicate the start and end of a block.
Now we get to the point that is somewhat controversial: how much indenting should be used? 2 spaces? 4 spaces? 8 spaces? And should we use spaces, tabs, or a mixture of them? The way I see it there are three important factors in making that decision:
These three factors lead to an obvious solution: always use a single tab for indenting. This solves the both problem of keeping things consistent (use tabs everywhere) as well as the problem of differing indent width preferences (everyone can change the tab width in their editor to their preferred indent width).