I think that the hardest thing (a hidden feature, for sure) for people in general to learn about SQL Server is the paradigm shift necessary to produce high performance code. Like it says in my signature line, you have to train yourself to stop thinking in rows and start thinking in columns. Once you've actually made that paradigm shift, then you can easily grasp such "advanced" topics such as the use of the naturally occurring "pseudo-cursors" built into every SELECT, INSERT, UPDATE, and DELETE and index usage, etc.
--Jeff Moden
Change is inevitable... Change for the better is not.