If PublishDate is DATETIME and you're storing ONLY date information or if you're column data type is DATE (SQL 2008), this will work:
select a.firstName, a.lastName, b.Name, b.PicturePath, b.PublishDate
from authors a
join books b on a.authorID = b.AuthorsID
where b.PublishDate > getdate() -7
order by b.PublishDate
However, if you ARE storing the time information and you only want to compare the date information, you'll have to truncate the time either from the left side, or the right side + 1 day:
For SQL 2008:
select a.firstName, a.lastName, b.Name, b.PicturePath, b.PublishDate
from authors a
join books b on a.authorID = b.AuthorsID
where cast(b.PublishDate as Date) > getdate() -7
order by b.PublishDate
For SQL 2005 and below:
select a.firstName, a.lastName, b.Name, b.PicturePath, b.PublishDate
from authors a
join books b on a.authorID = b.AuthorsID
where b.PublishDate > DATEADD (d, -8, DATEDIFF(dd, 0, GETDATE()))
order by b.PublishDate
There are several ways to truncate time:
select convert(varchar, getdate(), 101)
select DATEADD (d, 0, DATEDIFF(dd, 0, GETDATE()))
See this SO question for truncating time: Best approach to remove time part of datetime in SQL Server
To include the 7th day, simply change > to >=