This will cover the "necessary" bits. After this, it's just editing the options on the LeaderheadInfo to set all the interesting things (favourite wonders/civics, AI weights, allowed religions etc).
Adding a leaderhead (FfH edition)
Step 1 - Copy
In Assets\XML\Civilizatons\CIV4LeaderheadInfos.xml;
Find the leader you want to base your's upon and copy/paste it. Make sure it stays within the "<LeaderheadInfos></LeaderheadInfos" tags - if you put it after those, it won't be read in. You need to copy right from the <LeaderHeadInfo> tag, all the way to the closing tag </LeaderHeadInfo> for that leader.
=====================================
Step 2 - Change
Still in Assets\XML\Civilizatons\CIV4LeaderheadInfos.xml;
Alter the values for Type, Description, Civilopedia and ArtDefineTags fields.
=====================================
Step 3 - Need some text
In Assets\XML\GameText\Civ4GameText_Cualli.xml;
Note: this could be *any* of the GameText files - Cualli is used as that is where I put all the Cualli text (strangely enough...)
We need values for the 2 text keys we just used - TXT_KEY_LEADER_DAVE and TXT_KEY_LEADER_DAVE_PEDIA. Copy and paste them from LEADER_CUALLI is probably easiest.
=====================================
Step 4 - A picture is worth a thousand words, but you still need an ART_DEF...
In Assets\XML\Art\CIV4ArtDefines_Leaderhead.xml;
First off - you need a leaderhead picture at 512x512, saved as a DDS file.
Second off - you need a button picture at 64x64, also saved as a DDS file.
Exporting/Saving as DDS and methods to make the "round bits" on buttons vary depending on your paint-tool of choice - but there are tutorials on each available in the main tutorial forum.
Once you've got that, add them into the appropriate directories (as noted below) and copy/edit the entry for LEADER_CUALLI as below.
=====================================
Step 5 - Every leader needs a civ to lead...
In Assets\XML\Civilizations\CIV4CivilizationsInfo.xml;
Find the civilization that he's going to lead (CIVILIZATION_CUALLI) and add him to the "<Leaders>" field.
=====================================
Step 6 - Testing time and over to you...
Now it's time to fire up FfH and see if he's on the leader list. Big pink-squares mean that the artfile isn't where the ART_DEF says it is. TXT_KEY_SOMETHING means that it can't find a TXT_KEY - check the names match.
If all looks good - check that he's attached to the right civilization, then close Civ and go back to CIV4LeaderheadInfos.xml. From here on in - you can change any of the values to suit what you have in mind for the leader. Looking at the other leaders can give you a clue about what the numbers should be;
For instance - there is a value of iMaxWarRand. At first glance this looks like a good value to increase to make your leader more aggressive. If you check the other leaders however, you'll see that Ethne has a value of 400, whilst Daracaat has only 50. As I understand it, the AI will "roll" a random number between 0 and iMaxWarRand (technically n-1 before someone corrects me) and if that number is below the "threshold value" for war, he will declare war (in this case - "MaxWar", the aggressive version). As Ethne has a "bigger dice", the chances of rolling low are less (there are more high numbers and an equal chance of any number). Daracaat only rolls upto 50 (or 49), so if the threshold is 45, he has very little chance of rolling over it - which means a good chance he'll declare war.
There are a *lot* of values in there to play with and you may get some odd results - this is the fun bit though, which actually makes your leader interesting. Enjoy