To get current SP objects (SPWeb, SPSite, SPList etc), I generally use SPContext.Current. In some situations, SPContext.GetContext is preferred because SPContext.Current have many objects null depending on where the code runs (Webpart page, Edit item form etc).
Are you aware of any guidelines (may be from Microsoft) on the usage SPContext.Current and SPContext.GetContext ?