Generic methods for serializing and deserialzing xml files using streams
writerSettings.IndentChars = "    "; // 4 spaces  



by using 

writerSettings.IndentChars = string.Empty.PadRight(4, ' ');  


you wouldn't need that noisy comment.  



One wouldn't expect that a passed in Stream get closed inside that method. The closing of a Stream should only belong to the creator of that stream.  



In extension methods you should always check the argument which is reffered by this if it is null.
This is because that method can also be called like so  

StreamExtensions.SerializeObject&lt;someType&gt;(null, someObject);  


By checking (stream == null) and throwing an ArgumentNullException no unnecessary objects like XmlWriterSettings will be created.  



Otherwise than the mentioned points your code looks clean and is easy to read.