Ace has an add-on for warcraft called itemleveldkp for a look at a simply dkp price approach.
http://files.wowace.com/ItemLevelDKP/ItemLevelDKP-r37249.1032.zipthis is the specific function in their approach
function ilvlDKP(item)
   if not item then return -1000,0 end
   name,_,itemRarity,itemLevel,_,itemType,itemSubType,_,itemEquipLoc = GetItemInfo(item)
   if ItemLevelDKP_List[name] then
      return -1,ItemLevelDKP_List[name]
   else      
      if (not ((itemType == "Armor" or itemType == "Weapon") and 
	       (itemRarity > 2 and  itemRarity < 6))) then
	 return -1000,0
      end
      -- Set DKP base cost
      dkp_base = 0
      if (itemRarity == 3) then
	 dkp_base = (itemLevel - 1.84) / 1.6
      elseif (itemRarity == 4) then
	 dkp_base = (itemLevel - 1.3) / 1.3
      elseif (itemRarity == 5) then
	 dkp_base = itemLevel
      end	 
      -- Set slot modifier
      dkp_slot = 0
      if     (itemEquipLoc == "INVTYPE_HEAD") then
	 dkp_slot = 1
      elseif (itemEquipLoc == "INVTYPE_NECK") then
	 dkp_slot =  0.54
      elseif (itemEquipLoc == "INVTYPE_SHOULDER") then
	 dkp_slot = 0.74
      elseif (itemEquipLoc == "INVTYPE_CHEST") then
	 dkp_slot = 1
      elseif (itemEquipLoc == "INVTYPE_ROBE") then
	 dkp_slot = 1
      elseif (itemEquipLoc == "INVTYPE_WAIST") then
	 dkp_slot = 0.74
      elseif (itemEquipLoc == "INVTYPE_LEGS") then
	 dkp_slot = 1
      elseif (itemEquipLoc == "INVTYPE_FEET") then
	 dkp_slot = 0.74
      elseif (itemEquipLoc == "INVTYPE_WRIST") then
	 dkp_slot = 0.54
      elseif (itemEquipLoc == "INVTYPE_HAND") then
	 dkp_slot = 0.74
      elseif (itemEquipLoc == "INVTYPE_FINGER") then
	 dkp_slot = 0.54
      elseif (itemEquipLoc == "INVTYPE_TRINKET") then
	 dkp_slot = 0.68
      elseif (itemEquipLoc == "INVTYPE_CLOAK") then
	 dkp_slot = 0.54
      elseif (itemEquipLoc == "INVTYPE_WEAPON") then
	 dkp_slot = 1
      elseif (itemEquipLoc == "INVTYPE_SHIELD") then
	 dkp_slot = 0.65
      elseif (itemEquipLoc == "INVTYPE_2HWEAPON") then
	 dkp_slot = 1.5
      elseif (itemEquipLoc == "INVTYPE_WEAPONMAINHAND") then
	 dkp_slot = 1
      elseif (itemEquipLoc == "INVTYPE_WEAPONOFFHAND") then
	 dkp_slot = 1
      elseif (itemEquipLoc == "INVTYPE_HOLDABLE") then
	 dkp_slot = 0.52
      elseif (itemEquipLoc == "INVTYPE_RANGED" or itemEquipLoc == "INVTYPE_RANGEDRIGHT") then
	 if (itemSubType == "Guns" or itemSubType == "Bows" or itemSubType == "Crossbows") then
	    dkp_slot = 1.5
	 else
	    dkp_slot = 0.50
	 end
      elseif (itemEquipLoc == "INVTYPE_RELIC") then
	 dkp_slot = 0.30
      else
	 dkp_slot = 0
      end
      if (dkp_base == 0 or dkp_slot == 0) then 
	 return -1000,0
      else
	 return itemLevel,dkp_base * dkp_slot
      end 
   end
end
looks you get a base based on rarity multiplied by the item level and slot type. 
hope this helps.