<p>After maintaining lots of code littered with #region (in both C# and VB.NET), it seems to me that this construct is just a bunch of "make work" for the programmer. It's work to PUT the dang things into the code, and then they make searching and reading code very annoying.</p>

<p>What are the benefits? Why do coders go to the extra trouble to put this in their code.</p>

<p>Make me a believer!</p>

Often times, both partials and #regions are used as a crutch for bad design (e.g. class is too big or tries to do too many things).
The
best
use I've had for #regions so far is the grouping of functionality that is seen in many different classes. For example, value objects that have getters, setters, constructors and supporting fields. I might very well group those ideas into regions. Its a matter of opinion, however, as to whether that makes code cleaner or harder to read.