I am using an OID that returns the string values "complete", "in-progress", and "pending" for example. I would like this sensor to show a gauge with 3 states. How to accomplish this? 

____

The "correct" sensor for this case is the SNMP Custom String Lookup sensor. As you mentioned, these are the "possible" outputs of the OID that you are monitoring:

complete
in-progress
pending

First of all, we need to tell PRTG what the possible outputs are. For this, we need to create a slightly different lookup that will look like this:

<?xml version="1.0" encoding="UTF-8"?> 
<ValueLookup id="prtg.custom.string.progress" desiredValue="0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PaeValueLookup.xsd">     
<Lookups>        
 <SingleInt state="Ok" value="0">complete</SingleInt>        
 <SingleInt state="Warning" value="1">in-progress</SingleInt>        
 <SingleInt state="Error" value="2">pending</SingleInt>     
</Lookups> 
</ValueLookup>

Once you have created and stored the lookup, go to Setup | System Administration | Administrative Tools in the PRTG web interface and click Load Lookups and File Lists. Then go back to the device in PRTG and deploy the SNMP Custom String Lookup sensor. When adding the sensor, select the previously created lookup from the list.

The sensor will show a gauge to which it will map the 3 possible states via the lookup. If there are more possible states, they have to be added within the <Lookups> tag in the .ovl lookup file.

More

Further information regarding lookups:
Other SNMP-related topics: