jaw999
The issue you are having is that ProcessInstance.targetObjectId is a polymorphic relationship to other sObjects (including Lead in your example) and OOB SFDC reports won't let you build a custom report type that will traverse that polymorphic lookup relationship
Assuming you need a report like the ones in the SFDC help , I'd suggest you write a Visualforce page / controller that executed two SOQL to populate a single inner class for whatever reporting output you want
The VF page can be launched from a home page custom link in the sidebar
Query 1
SELECT Id, targetObjectId, (SELECT Id, StepStatus, Comments FROM Steps)
FROM ProcessInstance where ...
save results in a map of targetObjectId to ProcessInstance and
save results in a map of ProcessInstanceId to targetObjectId
Query 2
Select id, company, email, lastname from Lead
where id IN targetObjIdToPIMap.keySet()
Lastly, merge results of the Query2 with the maps from Query1 into a list of some inner class containing your reporting data. Use VF pageBlockTable/dataTable/repeat to construct a pleasing format
Details of writing the actual VF page/controller are left as an exercise to you