I used to use plural for tables, since a table is a collection--but that reasoning falls down somewhat when you actually consider what a table is.
A table is an OBJECT, a singular object. It consists of columns, not rows. An empty table has no rows, but it does have columns. Therefore it is reasonable (and logical) to name tables as singular rather than plural. Especially when considering the RBAR mantra... (waving at Jeff)
On the application side, however, it's a completely different animal. SQL is set based, i.e. a set of rows (result set) is one thing. But a collection is by its nature plural and is always processed with a loop, each time through the loop dealing with one row. Therefore a collection is plural.
On the SQL side singular has a number of advantages. If all tables are named in the singular then you eliminate the complexities of English plurals right off the bat, therefore it reduces memory load during development, as many posters have pointed out.
Also, it's simple enough to avoid the reserved word problem by consistently using square brackets to name user created objects like tables and column names. (And yes, I know that's another serious cat fight where I'm absolutely in the minority 😛)
In the end, the point of standardized naming conventions (whichever ones you choose) is predictability. It's to relieve you of the need of remembering exact details, it reduces cognative load on the developer/dba/architect/chief cook and bottle washer.
Oh, and tabs vs. spaces? Spaces, here, but absolutely get a text editor that's not stupid, one that converts the tab key to the correct spaces! :hehe: