Using Craig's setup, is this what you are looking for?
declare @RunDate date;
set @RunDate = '2014-07-22'
select dateadd(week,datediff(week,0,dateadd(day,-1,@RunDate)),0)
IF OBJECT_ID ('tempdb..#SampleData') IS NOT NULL
DROP TABLE #SampleData
CREATE TABLE #SampleData (PERSON INT ,dt DATETIME,[PAYTYPE] VARCHAR(20) ,[ID] INT)
INSERT INTO #SampleData
SELECT 12913,'07/21/2014','Regular',101
UNION ALL SELECT 12913,'07/22/2014','Regular',102
UNION ALL SELECT 12913,'07/23/2014','Regular',103
UNION ALL SELECT 12913,'07/24/2014','Regular',104
UNION ALL SELECT 12913,'07/25/2014','Regular',105
UNION ALL SELECT 12913,'07/26/2014','Regular',104
UNION ALL SELECT 12913,'07/27/2014','Regular',105
UNION ALL SELECT 12913,'07/28/2014','Regular',101
UNION ALL SELECT 12913,'07/29/2014','Regular',102
UNION ALL SELECT 12913,'07/30/2014','Regular',103
UNION ALL SELECT 12913,'07/31/2014','Regular',104
UNION ALL SELECT 12913,'08/01/2014','Regular',105
SELECT
*
FROM
#SampleData
WHERE
dt >= dateadd(week,datediff(week,0,dateadd(day,-1,@RunDate)),0) and
dt <= @RunDate
ORDER BY
PERSON,
dt,
ID;
UPDATE #SampleData SET
PAYTYPE = 'Regular2'
OUTPUT
deleted.PERSON,
deleted.dt,
deleted.PAYTYPE,
deleted.ID
INTO
#SampleData
WHERE
PAYTYPE = 'Regular'
AND dt >= dateadd(week,datediff(week,0,dateadd(day,-1,@RunDate)),0) and
dt <= @RunDate;
SELECT
*
FROM
#SampleData
ORDER BY
PERSON,
dt,
ID;