Here's how I did it but in most situations it is best not to disable event firing outside the event handlier/receiver:
$web = Get-SPWeb -Identity http://yoursharepointweb #FILL IN WITH YOUR WEB URL
$list = $web.Lists["YOUR LIST"] #THE LIST NAME FOR YOUR LIST
$item = $list.GetItemById(YOUR NUMERIC LIST ITEM ID) #THE ITEM ID
$assembly = [Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint");
$type = $assembly.GetType("Microsoft.SharePoint.SPEventManager");
$prop = $type.GetProperty([string]"EventFiringDisabled",[System.Reflection.BindingFlags] ([System.Reflection.BindingFlags]::NonPublic -bor [System.Reflection.BindingFlags]::Static));
$prop.SetValue($null, $true, $null); #SET EVENT FIRING DISABLED.
$item["YOUR COLUMN NAME"]= "YOUR VALUE"
$prop.SetValue($null, $false, $null); #SET EVENT FIRING ENABLED.
I use the above code in a situation where a workflow task is assigned to a "blank" user i.e. sometimes a user has no permissions on a SharePoint site but they are assigned a task by the initiator of the workflow. In this case the task is assigned to blank and the email alert is sent out but the Assigned To field on the task item remains blank.